我是 scala 的新手,并试图编写一个函数文字来检查给定的整数是否为奇数。我的第一次尝试是:
val isOdd = (x:Int) => (x & 1) == 1
它工作得很好,而且由于参数 x 在这个函数文字中只出现一次,我很想使用“_”符号来进一步简化它,如下所示:
val isOdd = ((_:Int) & 1 ) == 1
但是这次编译器抱怨:
警告:使用 `==' 比较新对象将始终产生错误 val isOdd = ((_:Int) & 1 ) == 1
这个警告是什么意思?为什么编译器将其识别((_ :Int) & 1)
为新对象而不是产生值的按位运算?有没有办法使用“_”符号来编写这个函数文字?