Go语言入门到实战——00主目录
在上一章我们讲解了go语言的数据类型,这里我们将开始go里面运算符的讲解。
1.算术运算符
上面需要注意的是自增和自减只能用在后面,不可以放在前面,比如++a和–a就是不行的。这里读者可以自己测试。
2.比较运算符
关于go语言里面的比较运算符的使用和其它语言是有所不同的,这里举个例子:
对于==符号,当数组的维数和元素个数一致的时候是可以使用==符号来进行比较的,
如果每一个元素的值都是一样的,那么就是True,否则就是False,对比c或者c++语言,
实际上比较的是引用地址的值
举例分析:
func TestArray(t *testing.T) {
a := [...]int{
1, 2, 3, 4}
// b := [...]int{1, 2, 3, 4, 5}
c := [...]int{
1, 2, 4, 5}
d := [...]int{
1, 2, 3, 4}
//t.Log(a == b) 这一行写出来会报编译错误,虽然维数是一样的,但是元素个数不同
t.Log(a == c)
t.Log(a == d)
}
3.逻辑运算符
4.位运算符
除了上面的运算符外,它们和主流的语言是一致的,但是还有一个运算符&^
是不同的,它的运算方式是右边位为0,那么结果和左边保持一致,右边位为1,那么结果就为0
1 &^ 0 = 1
0 &^ 0 = 0
1 &^ 1 = 0
0 &^ 1 = 0
func TestBit(t *testing.T) {
const (
Monday = 1 << iota //0001
Tuesday //0010
Wednesday //0100
)
var a int = 7 // 0111
t.Log(a&^Monday, a&^Tuesday, a&^Wednesday)
}