2013-03-09 11 views
7

मेरा अनुभव सी-आधारित भाषाओं (सी, सी ++, जावा, सी #) में है जहां फ़ंक्शन का रिटर्न प्रकार शून्य हो सकता है, यानी कोई वापसी नहीं हो सकती है। लेकिन रूबी में, ऐसा प्रतीत होता है कि हर समारोह कुछ देता है। मैं सोच रहा था कि रूबी में ऐसी विधि के लिए क्या लौटना है जो जावा या सी ++ में कुछ भी वापस नहीं करेगा। मेरा सबसे अच्छा अनुमान या तो शून्य या ऑब्जेक्ट होगा जिसमें विधि (चेनिंग के लिए) शामिल है या अंत में होने वाली चीज़ों को अनदेखा करें, लेकिन मुझे इस पर कोई जानकारी नहीं मिल रही है।शून्य वापसी प्रकार के लिए रूबी विकल्प

रुबी में शून्य करने का विकल्प क्या है?

उत्तर

9

विधि में पिछले बयान में

return nil 

रखो।

या बस

nil 
+2

खाली फ़ंक्शन ('def foo; end') भी शून्य रूप से' शून्य 'देता है। –

+0

@Zoidberg जो सच है लेकिन कोई व्यावहारिक उपयोग है? – texasbruce

+0

ठीक है, सुसंगत होने के लिए मैं "शून्य" लौटने वाले फ़ंक्शन से 'शून्य' वापस कर दूंगा। –

0

आप कुछ भी नहीं, वापस करने हाँ आप वापसी नहीं के बराबर का उपयोग कर सकते हैं। पर क्यों?

एक चर को फ़ंक्शन कॉल असाइन नहीं करके, आप आनंदित कर सकते हैं कि क्या लौटाया गया है। वह लौटाया गया मूल्य कचरा संग्रह में कहीं भी नहीं खो जाएगा और खो जाएगा।

+11

कैसे है यदि आप कम से कम इस बारे में नहीं सोचते कि विधि में अंतिम अभिव्यक्ति आपके मूल्यांकन के बारे में जानकारी को गलती से जानकारी के बारे में जानकारी दे सकती है विधि और लोग उस पर भरोसा करना शुरू कर सकते हैं, भले ही आपका दस्तावेज़ अन्यथा कहता हो। –

0

शून्य शून्य के समान नहीं है। आप एक चर को शून्य पर सेट कर सकते हैं, लेकिन आप इसे शून्य पर सेट नहीं कर सकते हैं। यदि कोई फ़ंक्शन शून्य देता है तो इसे किसी भी त्रुटि के साथ एक चर के लिए असाइन किया जा सकता है, लेकिन एक शून्य कार्य (जावा या ऐसी ऐसी भाषा जो शून्य कार्यों का समर्थन करता है) के साथ कोशिश करें और संकलक छाल जाएगा। मैं एक रूबी सुपर-विशेषज्ञ नहीं हूं, लेकिन मुझे कोई संकेत नहीं मिल रहा है कि शून्य की अवधारणा समर्थित है। सभी कार्य कुछ वापस लौटते हैं, भले ही यह शून्य हो। यदि यह गलत है तो मुझे उम्मीद है कि रूबी के अधिक ज्ञान वाले किसी व्यक्ति को काउंटररेक्स नमूना मिल सकता है।

एक चर, विशेष रूप से रूबी में जहां सबकुछ एक वस्तु है, एक नाम और एक जगह को स्टोर करने के लिए एक जगह है जो किसी वस्तु को ढेर पर इंगित करती है। एक चर को शून्य पर सेट करना मतलब है कि इसके पॉइंटर को एक और केवल NilClass के उदाहरण को सेट करना है। (सत्य और गलत समान हैं; TrueClass और FalseClass का एक उदाहरण है।)

मुझे एहसास है कि सी में शून्य पॉइंटर्स कहा जाता है। यह "शून्य" शब्द का एक पूरी तरह से अलग उपयोग है। एक शून्य सूचक वास्तव में एक पता और कुछ बिंदु इंगित करता है। आइए अब इन्हें अनदेखा करें; मैं केवल उनको निष्पक्ष बंदरगाहों से दूर करने का जिक्र कर रहा हूं। हम रूबी में फ़ंक्शंस पर फ़ोकस कर रहे हैं जो सचमुच कुछ भी वापस नहीं लौटाता है, जो कि मैं कह सकता हूं।

संबंधित मुद्दे