Я немного озадачен этим
Следующий код компилируется нормально:
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, Action является сопутствующим объектом с методом apply, который получает функцию формы: Request [AnyContent] = > Результат и возвращает действие [AnyContent]
Кажется, что с помощью оператора return блок возвращает результат непосредственного выполнения BadRequest... и Ok... вместо того, чтобы возвращать результат передачи блока сопутствующему объекту Action...
Я прав?
Примечание. Я пытаюсь найти способ избавиться от так много вложенных карт и getOrElse
ps: извините, если вопрос немного запутан, я смутил себя...