我有點疑惑問心無愧這階:問題return語句
下面的代碼編譯確定:
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"))
我認爲這兩個代碼就等於......
BTW,行動是一個同伴對象,與一個應用方法,接收函數的形式:Request [AnyContent] =>結果,並返回一個Action [AnyContent]
看起來像使用return語句,塊返回直接執行BadRequest的結果。 ..和好的...而不是將傳遞塊的結果返回到Action對象伴侶...
對不起,對嗎?
注:我試圖找到擺脫這麼多的嵌套的地圖和getOrElse的
PS的方式:對不起,如果這個問題有點迷惑,我很困惑自己...
感謝丹尼爾,我發現你說的難道...有沒有從函數無條件退出的相同方式?也就是說,我希望返回值在傳遞給Action的塊中進行評估...... – opensas 2012-08-14 06:48:15
@opensas您可以將函數定義爲「def」,然後將其作爲參數傳遞給「Action」。 – 2012-08-14 17:07:07
**記住:從封閉的def **返回返回值,請你解釋一下是什麼意思? – 2013-12-17 05:05:07