gpt4 book ai didi

Scala:Play2 中的 def 与 val

转载 作者:行者123 更新时间:2023-12-01 06:27:04 25 4
gpt4 key购买 nike

我一直在按照Play中的说明进行操作! Framework Essentials 一书,有时我会在 Controller 中看到一个 Action ,定义为 定义 ,有时还有 val .

我知道 def 会在调用时重新计算表达式,而 val 会立即计算表达式,但是在 Controller 操作的上下文中,有什么区别吗?

这是示例代码:

object Items extends Controller {

val list = Action { implicit request =>
...
}

val create = Action { implicit request =>
...
}

def details(id: Long) = Action { implicit request =>
...
}

def update(id: Long) = Action { implicit request =>
...
}
}

最佳答案

正如你所说,def每次调用时都会重新计算表达式,而 val将在 Items 时进行评估对象被实例化。

这意味着 Controller 操作是根据 def 定义的。将 较慢 每次调用时, Controller 都需要实例化一个 Action ,将您定义的匿名函数传递给它,等等。

如果表达式不需要任何抽象,使用 val 总是会更高效。而不是 def .

关于Scala:Play2 中的 def 与 val,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com