Go 变量 运算符

本文介绍了Go语言中的运算符,包括算术运算符如加法(同时适用于数值和字符串),比较运算符允许比较相同维数的数组,以及逻辑运算符。还特别讲解了位运算符,特别是按位清0运算符(&^)的使用,并通过示例展示了如何使用它来修改变量的位模式,以实现特定的逻辑。
摘要由CSDN通过智能技术生成

go语言里面的运算符号包含了算术运算符逻辑运算符,和位运算符

算术运算符


程序中+号的使用

1)当左右两边都是数值型时,则做加法运算

2)当左右两边都是字符串,则做字符串拼接

	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 4
true 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 4
6
false true true

可以看到对于其他的不受影响,这样代码易读和简洁明了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值