Анонимная функция как аргумент в scala

В Play 2.3 метод Action.async имеет сигнатуру

final def async(block: ⇒ Future[Result]): Action[AnyContent]

Не понял смысл => Future[Result], это анонимная функция? Тогда разве это не должно быть () => Future[Result]?


person Zelong    schedule 17.12.2015    source источник
comment
Вы можете найти ответ здесь: stackoverflow.com/questions/22670356/ и во многих других подобных вопросах.   -  person Łukasz    schedule 17.12.2015


Ответы (2)



Это вызов по имени, а не по значению, как обычно. Это означает, что аргумент здесь block имеет тип Future[Result] и он лениво оценивается, когда это необходимо, а не сразу при вызове функции.

person Guenter Guckelsberger    schedule 17.12.2015
comment
это более тонкая разница, чем лениво оцененная - stackoverflow.com/q/13337338/409976. - person Kevin Meredith; 17.12.2015