iade ifade ile ilgili sorunlar: Sadece return ifadesini eklersenizscala: Bu</p> <p>Aşağıdaki kod Tamam derler wth biraz şaşkınım
def save: Action[AnyContent] = Action {
if (1 == 2) {
BadRequest(toJson("something went wrong"))
} else {
Ok(toJson(Feature.find))
}
}
ama, ben şu olsun:
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"))
Ben
BTW, Eylem ile, bir refakatçi nesnesidir ... Bu iki kod eşdeğer olacağını düşündüm formun bir işlevini alan bir başvuru yöntemi: Request [AnyContent] => Sonuç ve bir Action [AnyContent] döndüren bir Eylem [AnyContent]
Geri dönüş deyimiyle olduğu gibi, blok doğrudan BadRequest yürütme sonucunu döndürüyor gibi görünüyor. .. ve Tamam ... bloğun Action nesnesine aktarılmasının sonucunu döndürmek yerine ...
Doğru muyum?
Not: Ben
ps kadar çok iç içe harita ve getOrElse kurtulmanın bir yolunu bulmaya çalışıyorum: ... soru biraz şaşırtmak ise üzgünüm, kendimi kafam karıştı
teşekkürler daniel, zor yoldan ne dediğinizi keşfettim ... bir fonksiyondan koşulsuz bir çıkışa sahip olmanın aynı yolu var mı? Yani, dönüş işleminin eyleme geçirilen blokta değerlendirilmesini istiyorum… – opensas
@opensas Fonksiyonunuzu her zaman bir 'def' olarak tanımlayabilir ve daha sonra 'Action' olarak parametre olarak iletebilirsiniz. –
** Unutmayın: İade arızasının dönüşü **, bunun ne anlama geldiğini açıklayabilir misiniz? –