app开发者平台在数字化时代的重要性与发展趋势解析
618
2022-11-30
Go 变量 运算符
go语言里面的运算符号包含了算术运算符,逻辑运算符,和位运算符。
算术运算符
程序中+号的使用
1)当左右两边都是数值型时,则做加法运算
var i = "1" var j = "2" sum := i + j fmt.Println(sum)12
⽐较运算符
对于某些特殊类型的是否可以比较,比如切片。
在其他语言里面,数组是引用类型,不是一个值类型,用==号在比较的时候是比较两个数组的引用,而不是比较里面的值是否相同。这一点在go语言里面是不一样的,如果两个数组的维数相同是可以比较的。
⽤ == ⽐较数组
相同维数且含有相同个数元素的数组才可以⽐较(如果长度不一样数组比较就会出现编译错误)每个元素都相同的才相等
var array1 = [5]int{1,2,3,4,6} var array2 = [5]int{1,2,3,4,6} println(array1 == array2)true
逻辑运算符
位运算符
按位清0运算符
与其他主要编程语⾔的差异
&^ 按位置零
1 &^ 0 -- 1
1 &^ 1 -- 0
0 &^ 1 -- 0
0 &^ 0 -- 0
对于左右两个操作数来说,只要右边的操作数为1,那么无论左边的位上的数字为0还是为1,那么结果都为0。
如果右边的二进制位为0,那么左边的二进制原来为什么,其结果就是什么。
const( Readable = 1 << iota // 1 Writeable // 10 Executable // 100)func main() { fmt.Println(Readable,Writeable,Executable) a := 7 //0111 fmt.Println(a&Readable == Readable,a&Writeable == Writeable,a&Executable == Executable)}1 2 4true true true
现在适应按位清0运算符。
const( Readable = 1 << iota // 1 Writeable // 10 Executable // 100)func main() { fmt.Println(Readable,Writeable,Executable) a := 7 //0111 a = a&^ Readable fmt.Println(a) //110 fmt.Println(a&Readable == Readable,a&Writeable == Writeable,a&Executable == Executable)}1 2 46false true true
可以看到对于其他的不受影响,这样代码易读和简洁明了。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~