我是scala的新手,并试图编写一个函数文字来检查给定的整数是否为奇数.我的第一次尝试是:
val isOdd = (x:Int) => (x & 1) == 1
它工作得很好,而且,由于参数x只在这个函数文字中出现一次,我很想用"_"表示法进一步简化它,如下所示:
val isOdd = ((_:Int) & 1 ) == 1
但这次编译器抱怨:
warning: comparing a fresh object using `==' will always yield false val isOdd = ((_:Int) & 1 ) == 1
这个警告意味着什么?为什么编译器识别((_ :Int) & 1)为新对象而不是按位运算导致值?有没有办法用"_"表示法编写这个函数文字?