我已经在许多编程语言中看到了&的用法,由于我非常喜欢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


在允许操作符重载的语言中,库有时会重载&来进行设置相交或逐元素位相交。

10-06 10:05