相关疑难解决方法(0)

scala:return语句的问题

这有点让我感到困惑

以下代码编译好了:

def save: Action[AnyContent] = Action {
  if (1 == 2) {
    BadRequest(toJson("something went wrong"))
  } else {
    Ok(toJson(Feature.find))
  }
}
Run Code Online (Sandbox Code Playgroud)

但如果我只是添加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"))
Run Code Online (Sandbox Code Playgroud)

我以为这两个代码是等价的......

BTW,Action是一个伴随对象,它有一个apply方法,它接收一个形式的函数:Request [AnyContent] => Result,并返回一个Action [AnyContent]

看起来像return语句,块返回直接执行BadRequest的结果...而且Ok ...而不是返回将块传递给Action对象伴侣的结果...

我对吗?

注意:我正试图找到摆脱这么多嵌套map和getOrElse的方法

ps:对不起,如果问题有点混乱,我很困惑自己......

scala playframework-2.0

13
推荐指数
1
解决办法
4169
查看次数

标签 统计

playframework-2.0 ×1

scala ×1