पुराना (और "उत्तर") प्रश्न, लेकिन मैं उत्तर के रूप में अपने दो सेंट में टॉस करूंगा।
TL; DR - आपके पास नहीं है, लेकिन यह कुछ मामलों में आपके कोड को बहुत अधिक स्पष्ट कर सकता है।
यद्यपि स्पष्ट रिटर्न का उपयोग नहीं करना "रूबी तरीका" हो सकता है, यह अपरिचित कोड के साथ काम करने वाले प्रोग्रामर को भ्रमित कर रहा है, या रूबी की इस विशेषता से अपरिचित है।
यह कुछ हद तक विरोधाभासी उदाहरण है, लेकिन इस तरह के एक छोटे से कार्य होने की कल्पना करें, जो एक संख्या को पारित कर देता है, और इसे एक उदाहरण चर पर असाइन करता है।
def plus_one_to_y(x)
@y = x + 1
end
क्या इसका मतलब एक ऐसा समारोह होना था जो एक मूल्य लौटाता था, या नहीं? यह वास्तव में कहना मुश्किल है कि डेवलपर का क्या मतलब है, क्योंकि यह दोनों उदाहरण चर को असाइन करता है, और निर्दिष्ट मान भी लौटाता है।
माना जाता है कि बाद में, एक और प्रोग्रामर (शायद यह नहीं कि रूबी कोड के अंतिम पंक्ति के आधार पर कैसे रिटर्न करती है) से परिचित है और लॉगिंग के लिए कुछ प्रिंट स्टेटमेंट में डालना चाहता है, और फ़ंक्शन यह बन जाता है ...
def plus_one_to_y(x)
@y = x + 1
puts "In plus_one_to_y"
end
यदि कुछ भी लौटाए गए मूल्य की अपेक्षा करता है, तो अब फ़ंक्शन टूट गया है । यदि कुछ भी लौटाए गए मूल्य की अपेक्षा नहीं करता है, तो यह ठीक है। स्पष्ट रूप से अगर कहीं और कोड श्रृंखला के नीचे है, तो यह कहते हुए कुछ वापस लौटाए गए मूल्य की अपेक्षा कर रहा है, यह विफल होने जा रहा है क्योंकि यह वापस नहीं मिल रहा है जो कि उम्मीद करता है।
असली सवाल अब यह है: क्या कुछ भी वास्तव में एक लौटे मूल्य की उम्मीद करता है? इसने कुछ तोड़ा या नहीं? क्या यह भविष्य में कुछ तोड़ देगा? कौन जाने! सभी कॉल की केवल एक पूर्ण कोड समीक्षा आपको बताएगी।
तो मेरे लिए कम से कम, सबसे अच्छा अभ्यास दृष्टिकोण या तो बहुत स्पष्ट है कि आप कुछ वापस कर रहे हैं अगर यह मायने रखता है, या कुछ भी नहीं होने पर वापस लौटें।
तो हमारे छोटे डेमो फ़ंक्शन के मामले में, यह मानते हुए कि हम इसे एक मूल्य वापस करना चाहते हैं, यह इस तरह लिखा जाएगा ...
def plus_one_to_y(x)
@y = x + 1
puts "In plus_one_to_y"
return @y
end
और यह किसी भी प्रोग्रामर के लिए बहुत स्पष्ट होगा कि यह एक मूल्य लौटाता है, और उनके लिए इसे साकार किए बिना इसे तोड़ना बहुत कठिन है।
वैकल्पिक रूप से, कोई इसे इस तरह लिख सकता है और रिटर्न स्टेटमेंट को छोड़ सकता है ...
def plus_one_to_y(x)
@y = x + 1
puts "In plus_one_to_y"
@y
end
लेकिन शब्द वापस छोड़ने से क्यों परेशान हैं? क्यों न इसे वहां लगाया जाए और इसे 100% स्पष्ट किया जाए कि क्या हो रहा है? यह सचमुच आपके कोड प्रदर्शन करने की क्षमता पर कोई प्रभाव नहीं पड़ेगा।