作为Scala的新手,有人可以解释the code here吗?
val echo = Action { request =>
Ok("Got request [" + request + "]")
}
所以我知道你正在从一个Action trait创建一个名为echo的新值(类似于我可以收集的Java接口)。 request
是某种争论,虽然我之前从未见过这种语法 - 括号和箭头=>
表示什么?
我看到我创建了一个Result
对象,表示200响应,并且可能会返回该对象。但是我回来了什么样的功能?构造函数?
答案 0 :(得分:2)
首先,新值echo从调用函数Action.apply
的结果中获取其值,其中Action
是一个对象(scala singleton,与Java中的静态相关)。 / p>
Action.apply函数显然采用函数作为参数,按惯例会返回Action特征类型的值。
{ request =>
Ok("Got request [" + request + "]")
}
某个类型的函数(参数标记为request
)是某种类型(调用返回Ok
)。
假设您来自Java背景,Java 8 lambdas使用非常相似的语法。
答案 1 :(得分:1)
Action是一个接收请求并产生结果(响应)的函数。在表达式Before calling the proc test_var : 1
Inside the proc by ref. Setting its value to 10
test_var 1
AFTER calling the proc test_var : 1
中,您有一个函数文字(匿名函数){}
。因此,在request => Ok()
之后,request
将在身体内可用。
由于这是Scala,所评估的表达式的最后一位将是结果;也就是说,将评估=>
内的内容,然后生成结果。