我已经在许多编程语言中看到了 &
的使用,并且由于我非常喜欢 groovy,所以我尝试了以下代码来找到 &
的使用:
a = 1 ;
println a & 2
我得到的输出为0
。当我更改 a
的值时,我得到不同的答案。
那么任何人都可以用简单的英语说出 &
在像 Groovy 这样的编程语言中的用途是什么,可能还可以用任何语言的简单示例来说明?
提前致谢。
最佳答案
&
通常是按位与(对于整数参数)或非短路逻辑与(对于 boolean 参数)。
按位并返回一系列位(通常表示为 int
类型),这些位仅具有公共(public)集合中的位
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
在允许运算符重载的语言中,库有时会重载 &
来执行集合交集或按元素位交集。
关于java - 编程语言中 & 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7424779/