अज्ञात फ़ंक्शन में एक स्पष्ट वापसी कथन (return
कीवर्ड का उपयोग करने वाला) क्यों नामांकित फ़ंक्शन से वापस लौटाता है, न केवल अज्ञात फ़ंक्शन से?अज्ञात कार्यों में स्कैला रिटर्न स्टेटमेंट
उदा। एक प्रकार की त्रुटि में निम्नलिखित कार्यक्रम के परिणाम:
def foo: String = {
((x: Integer) => return x)
"foo"
}
मैं जानता हूँ कि यह return
कीवर्ड से बचने के लिए अनुशंसा की जाती है, लेकिन मैं में क्यों स्पष्ट और निहित वापसी बयान गुमनाम कार्यों में एक अलग अर्थ विज्ञान है इच्छुक हूँ।
निम्नलिखित उदाहरण में, m
के बाद रिटर्न स्टेटमेंट "जीवित रहता है" निष्पादन समाप्त हो गया है, और प्रोग्राम को रन-टाइम अपवाद में परिणाम मिलता है। यदि अज्ञात फ़ंक्शन संलग्न कार्य से वापस नहीं लौटे, तो उस कोड को संकलित करना संभव नहीं होगा।
def main(args: Array[String]) {
m(3)
}
def m: (Integer => Unit) =
(x: Integer) => return (y: Integer) => 2
क्या आपके पास कुछ और गंभीर उदाहरण हैं कि अर्थशास्त्र में अंतर क्यों आवश्यक है? चूंकि आपने जो सूचीबद्ध किया है, उसे आसानी से संशोधित 'foreach' के साथ अनुकरण किया जा सकता है जिसमें एक अनुमानित पैरामीटर है। – corazza