Scala标准库中是否有等效于Java Boolean双操作数逻辑与或的高阶函数?
解决方案
Scala 标准库的scala.Boolean伴生对象原生提供了对应的高阶逻辑运算函数,完全匹配你的需求:
- 对应Java
logicalAnd的实现:Boolean.and(a: Boolean, b: Boolean): Boolean - 对应Java
logicalOr的实现:Boolean.or(a: Boolean, b: Boolean): Boolean
你可以直接改写代码如下,即可正常编译:
val op = if (input == "or") Boolean.or else Boolean.and
如果你确实需要使用Java的方法实现,只需要手动将Java静态方法转为Scala函数类型即可,在方法后加_即可完成转换:
val op = if (input == "or") java.lang.Boolean.logicalOr _ else java.lang.Boolean.logicalAnd _
内容的提问来源于stack exchange,提问作者Ori Popowski
相关产品推荐
相关产品推荐

