今天,我遇到了Java语言中的奇怪行为。下面是代码
return "" && false
返回“”。
为什么会这样呢?
因为
产生LogicalANDExpression:LogicalANDExpression && BitwiseORExpression的评估如下:
- 令lref为评估LogicalANDExpression的结果。
- 令lval为GetValue(lref)。
- 如果ToBoolean(lval)为false,则返回lval。
- 令rref为评估BitwiseORExpression的结果。
- 返回GetValue(rref)。
这意味着:
如果第一个值是虚假的,则返回第一个值;如果第一个值是真实的,则返回第二个值。
这也是您执行以下操作时看到的行为:
return false && true
你得到false
。
这也意味着
return 23 && "Hello"
会给你“你好”
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句