Я новичок в scala и пытаюсь написать литерал функции, который проверяет, является ли заданное целое число нечетным или нет. моя первая попытка:Как упростить функцию словаря scala как это?
val isOdd = (x:Int) => (x & 1) == 1
он прекрасно работает, и, так как параметр х появляется только один раз в этой функции буквальный, я соблазн использовать «_» обозначения для упрощения его дальше, как это:
val isOdd = ((_:Int) & 1) == 1
однако на этот раз компилятор жалуется:
warning: comparing a fresh object using `==' will always yield false val isOdd = ((_:Int) & 1) == 1
Что означает это предупреждение? почему компилятор распознает ((_ :Int) & 1)
как новый объект, а не поразрядную операцию, которая приводит к значению? есть ли способ записать этот литерал функции, используя нотацию «_»?
Просто используйте: 'вал нечетное =! even (_: Int) ' –