निम्न दो कोड अलग परिणाम उत्पन्न:"वापस" और "कोशिश-पकड़ने के अंत में" ब्लॉक मूल्यांकन स्केला में
def x = try{
true
} finally false
आह्वान एक्स हो जाता है true
def y:Boolean = try{
return true
} finally {
return false
}
y हो जाता है false
return
संस्करण जावा के समान व्यवहार करता है।
व्यक्तिगत रूप से मैं कभी भी स्केल में 'वापसी' का उपयोग नहीं करता हूं। लेकिन यह जानना अच्छा है कि स्काला एक कोशिश-अंत-अंत ब्लॉक के मूल्य का मूल्यांकन कैसे करता है। धन्यवाद।
लेकिन "एक निहित वापसी" क्या है? – xiefei
"लागू वापसी": शायद गलत शब्द, लेकिन मेरा मतलब यह था कि स्कैला ब्लॉक ब्लॉक में अंतिम पंक्ति के परिणाम को ब्लॉक के लिए वापसी मूल्य के रूप में उपयोग करता है। – Thilo
थिलो सही है। 'अंत में' ब्लॉक में 'वापसी' कथन डालना एक गलती माना जाना चाहिए, और वास्तव में अनुमति नहीं है। 'अंत में' चीजों को साफ करना है इससे कोई फर्क नहीं पड़ता कि विधि शरीर सफल होता है या अपवाद फेंकता है या नहीं। वापसी मूल्य तय करने के लिए यह जगह नहीं है! इसलिए, 'अंतराल 'का मूल्यांकन' यूनिट' के मूल्यांकन के लिए लिया जाता है। आपके पहले उदाहरण में, 'झूठी' को पूरी तरह से 'यूनिट' में परिवर्तित कर दिया गया है। –