2013-04-05 4 views

ответ

1

Краткое обозначение для анонимных функций:

(p: Int) => (p == 5); 

Длинная версия:

new Function1[Int] { 
    def apply(p: Int): Int = p == 5 
} 
+0

еще короче (_: Int) == 5 –

0

Вы хотите функцию, которая принимает целое число и возвращает логическое

(p: Int) => (p == 5); 

Читать через учебник по anonymous функций.

0

Я думаю, самый короткий путь, чтобы написать это будет выглядеть примерно так:

val f: Int => Boolean = (_ == 5) 

Конечно, в зависимости от контекста вы можете потерять аннотацию типа:

List(1, 2, 3, 5, 4, 5).filter(_ == 5) 

=> List(5, 5) 

Согласно @ наблюдениям Сень ты можешь быть еще более succint с 5== Wich превращает == метод объекта 5 к функции.

val g: Int => Boolean = 5== 
List(1, 2, 3, 5, 4, 5).filter(g) => List(5, 5) 
+0

Если вы хотите кратчайший путь: 'List (1, 2, 3, 5, 4, 5) .filter (5 ==)' – senia

+0

@senia Спасибо, это не передумал. Я обновлю свой ответ с вашим наблюдением, если с тобой все в порядке –

+0

@ alex23 Это частично применяется, да. –

0

В случае, если вы хотите, чтобы превратить это уже объявленный метод в функцию, сделать это

yeah_five _ 
Смежные вопросы