पुराना (और "उत्तर दिया गया) प्रश्न, लेकिन मैं अपने दो सेंट में जवाब के रूप में टॉस करूंगा।
टीएल; डीआर - आपको नहीं करना है, लेकिन यह कुछ मामलों में आपके कोड को और अधिक स्पष्ट कर सकता है।
हालांकि एक स्पष्ट वापसी का उपयोग नहीं करना "रूबी रास्ता" हो सकता है, यह अपरिचित कोड के साथ काम कर रहे प्रोग्रामर को भ्रमित कर रहा है, या रूबी की इस सुविधा से अपरिचित है।
उदाहरण के लिए किसी के पास इस तरह का एक छोटा सा फ़ंक्शन हो सकता है, जो पारित संख्या में एक जोड़ता है, और इसे एक आवृत्ति चर में निर्दिष्ट करता है।
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% स्पष्ट करें कि क्या हो रहा है? इसका सचमुच आपके कोड की प्रदर्शन करने की क्षमता पर कोई असर नहीं पड़ेगा।
यह एक बहुत पुराना सवाल है, लेकिन जिनके पास समान प्रश्न हैं, उनके लिए पुस्तक Eloquent रूबी की अत्यधिक अनुशंसा की जाती है। यह मूर्खतापूर्ण रूबी लिखने के परिचय के रूप में एक स्टाइल गाइड नहीं है। मेरी इच्छा है कि लोग इसे पढ़ लेंगे! –