玩框架 Scala 动作

Play framework Scala actions

作为 Scala 的新手,有人可以解释一下吗the code here

val echo = Action { request =>
  Ok("Got request [" + request + "]")
}

所以我知道你正在创建一个名为 echo 的新值,它来自 Action 特征(类似于我收集到的 Java 界面)。 request 是某种参数,尽管我以前从未见过这种语法——括号和箭头 => 表示什么?

我看到我创建了一个 Result 对象来表示 200 响应,并且可能会返回它。但是我从什么样的函数返回呢?构造函数?

首先,新值 echo 从调用函数 Action.apply 的结果中获取其值,其中 Action 是一个对象(scala 单例,与 [= 中的静态相关) 24=]).

Action.apply 函数显然将一个函数作为其参数,并且按照惯例 return 一个 Action 特征类型的值。

{ request =>
  Ok("Got request [" + request + "]")
}

是从某种类型(参数标记为 request)到某种类型(对 Ok 的调用的 return)的函数。

假设您来自 Java 背景,Java 8 个 lambda 使用非常相似的语法。

Action 是接受请求并产生结果(响应)的函数。在表达式 {} 中,您有一个函数文字(匿名函数)request => Ok()。因此,request 将在 => 之后的主体内可用。

因为这是 Scala,所以计算的表达式的最后一位将是结果;也就是说,将评估 Ok() 中的内容,然后生成结果。