2015-11-24 3 views
0

Я довольно новичок в Scala, и я также изучаю игру. Я вижу следующую конструкцию, используемую в PlayScala Action method in Play 2

def list = Action { 
    val products = Product.findAll 
    Ok(views.html.products.list(products)) 
} 

Я смущен относительно того, что

Action {} 

делает. Возвращается ли значение Action? Что это за конструкция, если я хочу узнать об этом больше?

ответ

1

Эта конструкция называется factory method повышена с помощью scala apply sugar

Action в этой ссылке это companion object, который could be called singleton, но на самом деле наряду с очень конкретным типом одноэлементный Action$ методы, которые он отражается как статические методы Action.

Как мы можем считать object Action extends ActionBuilder[Request], которые имеют plenty of apply methods, строящие значения Action.

В фигурных скобках представлен nullary function, который является нулевым параметром closure и часто называется так на разных языках, таких как рубин или groovy. Это просто многострочный блок кода, который создает что-то в конце.