मैं wth इसस्केला: वापसी कथन के साथ समस्याओं
निम्नलिखित कोड ठीक संकलित एक छोटे से हैरान हूँ:
def save: Action[AnyContent] = Action {
if (1 == 2) {
BadRequest(toJson("something went wrong"))
} else {
Ok(toJson(Feature.find))
}
}
लेकिन अगर मैं सिर्फ वापसी कथन जोड़ने के लिए, मैं निम्नलिखित मिल:
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, लड़ाई, एक साथी वस्तु है साथ एक लागू विधि जो फ़ॉर्म का कार्य प्राप्त करती है: अनुरोध [AnyContent] => परिणाम, और जो एक कार्य देता है [AnyContent]
यह वापसी विवरण के साथ लगता है, ब्लॉक सीधे BadRequest निष्पादित करने के परिणाम को वापस कर रहा है। .. और ठीक है ... ब्लॉक ऑब्जेक्ट साथी को ब्लॉक पास करने के परिणाम लौटने के बजाय ...
क्या मैं सही हूँ?
नोट: मैं इतने सारे नेस्टेड मानचित्र और getOrElse से छुटकारा
ps हो रही का एक तरीका खोजने की कोशिश कर रहा हूँ: माफ करना अगर सवाल एक छोटे से भ्रमित है, मैं अपने आप को भ्रमित कर रहा हूँ ...
धन्यवाद डैनियल, मैंने पाया कि आपने कड़ी मेहनत क्यों की है ... क्या एक समारोह से बिना शर्त निकास करने का कोई तरीका है? यानी, मैं चाहता हूं कि कार्रवाई में पारित होने वाले ब्लॉक में वापसी का मूल्यांकन किया जाए ... – opensas
@ ओपेन्सस आप हमेशा अपने फ़ंक्शन को 'def' के रूप में परिभाषित कर सकते हैं, और उसके बाद इसे' एक्शन 'के पैरामीटर के रूप में पास कर सकते हैं। –
** याद रखें: संलग्न डीफ़ से रिटर्न रिटर्न ** क्या आप कृपया इसका अर्थ बता सकते हैं? –