मैं स्कैला सीख रहा हूं और मैंने रिटर्न स्टेटमेंट का उपयोग करने के बारे में कुछ देखा है।रिटर्न स्टेटमेंट का उपयोग करने और अंतिम मूल्य वापस करने के लिए डिफ़ॉल्ट करने के बीच क्या अंतर है?
तो, स्पष्ट रूप से स्कैला में, यदि आपके पास रिटर्न स्टेटमेंट नहीं है, तो अंतिम मान डिफ़ॉल्ट रूप से वापस किया जाता है। जो माहान है। लेकिन अगर आप वापसी प्रकार निर्दिष्ट किए बिना वापसी कथन का उपयोग करें, स्काला का कहना है "error: method testMethod has return statement; needs result type"
तो यह काम करता है
def testMethod(arg: Int) = {
arg*2
}
लेकिन इस त्रुटि
def testMethod(arg: Int) = {
return arg*2
}
यह मुझे मेरी ठोड़ी खरोंच और जाना बनाता है देता है
Mmmmmmmm ... उस के लिए एक कारण होना चाहिए।
क्यों स्पष्ट प्रकार घोषणा की आवश्यकता नहीं है जब आप एक वापसी कथन का उपयोग, लेकिन आप स्काला पिछले मूल्य वापस नहीं जाने कब? मैंने माना कि वे बिल्कुल वही बात थे, और वापसी विवरण केवल तभी होते हैं जब आप एक नेस्टेड फ़ंक्शन/सशर्त आदि के अंदर एक मूल्य वापस करना चाहते हैं (दूसरे शब्दों में, कि "वापसी" कथन स्वचालित रूप से आपके अंतिम मूल्य में डाला जाता है कंपाइलर द्वारा .. यदि विधि में कहीं और मौजूद नहीं है)
लेकिन स्पष्ट रूप से मैं गलत था। निश्चित रूप से कार्यान्वयन में कुछ और अंतर होना चाहिए?
क्या मुझे कुछ याद आ रही है?
मैं इसे संकलन नहीं है क्योंकि आप वास्तव में कीवर्ड 'return' का उपयोग कर रहे हैं की कल्पना के साथ चला जाता रख दिया और मैं सही था। मैं अपना जवाब एक सेकंड में पोस्ट करूंगा। असल में, यदि आप रिटर्न का उपयोग करते हैं, तो यह देखने जा रहा है कि आपने रिटर्न टाइप को अपने आप में डालने के बजाए अपना लौटा प्रकार घोषित कर दिया है। – Luminous