私はscalaが初めてで、指定された整数が奇数かどうかをチェックする関数リテラルを書き込もうとしています。私の最初の試みは:
val isOdd = (x:Int) => (x & 1) == 1
それはうまく機能し、パラメーター x はこの関数リテラル内で 1 回しか現れないため、次のように "_" 表記を使用してさらに単純化したくなります。
val isOdd = ((_:Int) & 1 ) == 1
ただし、今回はコンパイラが不平を言います:
警告: `==' を使用して新しいオブジェクトを比較すると、常に false が返されます val isOdd = ((_:Int) & 1 ) == 1
この警告はどういう意味ですか? ((_ :Int) & 1)
コンパイラは、値が得られるビットごとの操作ではなく、新しいオブジェクトとして認識するのはなぜですか? 「_」表記を使用してこの関数リテラルを記述する方法はありますか?