scala: problemy z instrukcją return
Jestem tym trochę zdziwiony
Poniższy kod kompiluje się w porządku:
def save: Action[AnyContent] = Action {
if (1 == 2) {
BadRequest(toJson("something went wrong"))
} else {
Ok(toJson(Feature.find))
}
}
ale jeśli dodam tylko instrukcję zwrotu, otrzymam następujące informacje:
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"))
Myślałem, że te dwa kody będą równoważne ...
BTW, Action jest obiektem towarzyszącym, z metodą stosowania, która otrzymuje funkcję postaci: Request [AnyContent] => Wynik, która zwraca akcję [AnyContent]
Wydaje się, że z instrukcją return blok zwraca wynik bezpośredniego wykonania BadRequest ... i Ok ... zamiast zwracać wynik przekazania bloku do towarzysza obiektu Action ...
Czy mam rację?
Uwaga: Próbuję znaleźć sposób na pozbycie się tak wielu zagnieżdżonych map i getOrElse
ps: przepraszam, jeśli pytanie jest trochę zmieszane, jestem zdezorientowany ...