运算符的操作方法
- Go 语言中的运算符均是从左至右结合
- 运算符具有优先级(从高到低)
!
* / % << >> & &^
+ - | ^
== != < <= >= >
<-
&&
||
一元运算符
- 取反:
!
二元运算符
- 四则运算:
+ - * /
- 取余:
%
- 左移右移:
<< >>
//用左移实现存储单位枚举
const (
B uint64 = 1 << (iota * 10)
KB
MB
GB
TB
PB
)
fmt.Println(B)
fmt.Println(KB)
fmt.Println(MB)
fmt.Println(GB)
fmt.Println(TB)
fmt.Println(PB)
//用左移实现只关注Create、Remove操作,排除其他操作
const (
Create uint32 = 1 << (iota + 1)
Write
Rename
Remove
)
op := Create | Remove //需要关注的操作
fmt.Println(op & Write) //等于0代表是需要排除的操作
- 按位与:
&
- 按位与非:
&^
(第二个值相对应位是1就是0,如果是0就取第一个值相对应位的数字)
/*
6: 0110
11: 1011
---------
&^ 0100 = 4
*/
fmt.Println(6 &^ 11)
- 按位或:
|
- 按位异或:
^
- 逻辑运算符:
== != <= >= > && ||
其他运算符
- 管道传入取出:
<-
网友评论