Play 2中的Scala Action方法

时间:2015-11-24 16:52:14

标签: scala playframework-2.0

我对Scala很新,我也在学习Play。我看到Play中使用了以下构造

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

我对什么

感到困惑
Action {}

一样。 Action是方法的返回值吗?如果我想了解更多关于它的信息,这个结构是什么?

1 个答案:

答案 0 :(得分:2)

这种名为factory method的结构通过scala apply sugar增强了

此引用中的

Actioncompanion objectcould be called singleton,但实际上还有非常具体的单例类型Action$,它的方法反映为{{1的静态方法}}

我们可以阅读object Action extends ActionBuilder[Request]plenty of apply methods构建Action类型的值。

这里的大括号呈现nullary function,它是null-parameter closure,并且通常在不同语言(如ruby或groovy)中命名。它只是多行代码块,最终产生了一些东西。