я новичок в 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)
как свежий объект, а не как побитовую операцию, которая приводит к значению? есть ли способ записать этот функциональный литерал с использованием обозначения "_"?