我已经在许多编程语言中看到了&
的用法,由于我非常喜欢groovy,所以我尝试了以下代码来找到&
的用法:
a = 1 ;
println a & 2
我得到的输出为
0
。当我更改a
的值时,会得到不同的答案。因此,任何人都可以用简单的英语说出诸如Groovy之类的编程语言中
&
的用途吗?提前致谢。
最佳答案
&
通常是按位与(在整数参数上)或非短路逻辑与(在布尔参数上)。
按位运算-并返回只有通用集合中的位的一系列位(通常表示为int
类型)
18 == 10010
6 == 00110
18 & 6 == 2 == 00010
这似乎就是您的Groovy代码中正在发生的事情。
1 & 2 == 0
,因为1和2没有共同的位。非短路逻辑,类似于
&&
,但if (f() && g()) // g is only called if f returns false
if (f() & g()) // g is called even when f returns false
在允许操作符重载的语言中,库有时会重载
&
来进行设置相交或逐元素位相交。