小编hin*_*d_d的帖子

如何简化scala的函数文字?

我是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)为新对象而不是按位运算导致值?有没有办法用"_"表示法编写这个函数文字?

scala function-literal

5
推荐指数
3
解决办法
1446
查看次数

标签 统计

function-literal ×1

scala ×1