我对此有点困惑
以下代码编译正常:
def save: Action[AnyContent] = Action {
if (1 == 2) {
BadRequest(toJson("something went wrong"))
} else {
Ok(toJson(Feature.find))
}
}
但如果我只是添加 return 语句,我会得到以下信息:
def save: Action[AnyContent] = Action {
if (1 == 2) {
return BadRequest(toJson("something went wrong"))
} else {
return Ok(toJson(Feature.find))
}
}
[error] found : play.api.mvc.SimpleResult[play.api.libs.json.JsValue]
[error] required: play.api.mvc.Action[play.api.mvc.AnyContent]
[error] return BadRequest(toJson("something went wrong"))
我认为这两个代码将是等效的...
顺便说一句,Action 是一个伴随对象,具有一个接收以下形式的函数的 apply 方法:Request[AnyContent] => Result,并返回一个 Action[AnyContent]
似乎使用 return 语句,该块正在返回直接执行 BadRequest... 和 Ok... 的结果,而不是返回将块传递给 Action 对象伴侣的结果...
我对吗?
注意:我正在尝试找到一种摆脱这么多嵌套地图和 getOrElse 的方法
ps:对不起,如果问题有点混乱,我自己也很困惑......