这个Scala构造函数在做什么?

时间:2020-02-12 12:59:28

标签: scala playframework

我一直在使用Play! Java框架,并希望使用Scala进行尝试。 我从一本Scala书籍开始,但是最基础的Play!样本让我完全困惑:

  def index(): Action[AnyContent] = Action { implicit request =>
    Ok(views.html.index())
  }

Scala的构造是Play! 可以理解,我们正在定义一个函数,该函数将返回带有常规参数Action的{​​{1}}。但是下一部分让我感到困惑。在这种情况下,分配是什么意思?

如果我去定义Action [AnyContent],它的定义为AnyContent 如果在等号之后转到“动作”的定义,则其定义为:

trait Action[A] extends EssentialAction { ... }

注意:我对使用的Scala构造感兴趣,我不在乎Play是什么!我真正理解的是在这里做的。

1 个答案:

答案 0 :(得分:2)

您实际上是在调用Action.apply(),它是在ActionBuilder中定义的hereapply()函数的第一个也是唯一的参数是函数request => Ok(...)