【Duke】运算符005 - PingPongGooo/GoFoundation GitHub Wiki
Go是生产力语言,为了避免编程出错。 Go语言没有前置的++,--
用==比较数组 相同维数且含有相同个数元素的数组才可以比较 每个元素都相同的才相等
package operator_test
import "testing"
func TestCompareArray(t *testing.T) {
a:=[...]int{1,2,3,4}
b:=[...]int{1,3,4,5}
//c:=[...]int{1,2,3,4,5}
d:=[...]int{1,2,3,4}
t.Log(a == b)
//t.Log(a == c) // 编译错误
t.Log(a == d)
}
位运算符 与其他主要编程语言的差异,Go语言为了提高生产力 &^ 按位置零
左操作数 右操作数
只要右边操作数为1 不论左操作数是多少,都得到0 如果右边操作数为0 左边操作数是什么,结果就是什么
1 &^ 0 -- 1
1 &^ 1 -- 0
0 &^ 1 -- 0
0 &^ 0 -- 0
package operator_test
import "testing"
const(
Readable = 1 << iota
Writable
Executable
)
func TestCompareArray(t *testing.T) {
a:=[...]int{1,2,3,4}
b:=[...]int{1,3,4,5}
//c:=[...]int{1,2,3,4,5}
d:=[...]int{1,2,3,4}
t.Log(a == b)
//t.Log(a == c) // 编译错误
t.Log(a == d)
}
func TestBitClear(t *testing.T){
a:=7 // 0111
a = a&^Readable
b := a &^Executable
t.Log(a&Readable == Readable,a&Writable == Writable,a&Executable == Executable)
t.Log(b&Readable == Readable,b&Writable == Writable,b&Executable == Executable)
}
//位运算符
//与其他主要编程语言的差异,Go语言为了提高生产力
//&^ 按位置零
//
//1 &^ 0 -- 1
//1 &^ 1 -- 0
//0 &^ 1 -- 0
//0 &^ 0 -- 0