我对Scala很新,我也在学习Play。我看到Play中使用了以下构造
def list = Action {
val products = Product.findAll
Ok(views.html.products.list(products))
}
我对什么
感到困惑Action {}
一样。 Action
是方法的返回值吗?如果我想了解更多关于它的信息,这个结构是什么?
答案 0 :(得分:2)
这种名为factory method的结构通过scala apply sugar增强了
此引用中的 Action
是companion object,could be called singleton,但实际上还有非常具体的单例类型Action$
,它的方法反映为{{1的静态方法}}
我们可以阅读object Action extends ActionBuilder[Request]
,plenty of apply methods构建Action
类型的值。
这里的大括号呈现nullary function,它是null-parameter closure,并且通常在不同语言(如ruby或groovy)中命名。它只是多行代码块,最终产生了一些东西。