java - 编程语言中 & 有什么用?

标签 java groovy

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

相关文章:

java - 从类路径资源(XML 文件)获取输入流

java - ArrayList 不是通用的;不能参数化

java - 纠结于大写或小写

java - myfaces EL 支持已禁用?

android - 为什么要在 build.gradle 中打印发布和调试消息?

java - 包装 JUnit 测试(在 Eclipse 中)

groovy - 如何测试 bean 属性是否可写?

unit-testing - Spock:使用可变参数模拟方法

gradle - Gradle Task-无法在Groovy中执行斐波那契数列

java - Java行代码错误