रूबी पूरी तरह ऑब्जेक्ट उन्मुख भाषा है। रूबी में, सब कुछ एक वस्तु & है, इसलिए, कुछ वर्ग से संबंधित है। उदाहरण के लिए 5
अंतर्गत आता है करने के लिए Object class
रूबी वास्तव में पूरी तरह ऑब्जेक्ट उन्मुख भाषा है?
1.9.3p194 :001 > 5.class
=> Fixnum
1.9.3p194 :002 > 5.class.superclass
=> Integer
1.9.3p194 :003 > 5.class.superclass.superclass
=> Numeric
1.9.3p194 :005 > 5.class.superclass.superclass.superclass
=> Object
1.9.3p194 :006 > 5.class.superclass.superclass.superclass.superclass
=> BasicObject
1.9.3p194 :007 > 5.class.superclass.superclass.superclass.superclass.superclass
=> nil
हां, तो हम Object_name#method_name
में के रूप में वर्ग/ऑब्जेक्ट नाम लगाकर द्वारा सभी तरीकों कॉल करने के लिए की है। उदाहरण:
5.times{|i| puts i}
अब, रेल stylesheet_link_tag
, javascript_include_tag
, form_for
आदि की तरह इन तथाकथित सहायकों जो इस Object_name#method_name
वाक्य रचना का पालन करते हैं, तो मैं लगता है कि वे सिर्फ सामान्य कार्यों हैं।
तो मेरे सवाल का
- क्या इन रेल सहायकों हो रहा है?
- यदि वे सिर्फ & कार्य करते हैं तो किसी भी वर्ग से प्राप्त नहीं होता है। क्या कहने वाले दावे का खंडन नहीं करता है - रुबी में,
everything a object & there are no primitives
। उदाहरण के तौर पर, लोग5.+(6)
का हवाला देते हुए कहते हैं कि ऑपरेटरों को केवल सादा तरीकों हैं?
प्रदान करने के लिए जब आप स्पष्ट रिसीवर के बिना विधि मंगलाचरण देखते हैं, तो रिसीवर 'self' है संपादित करेंगे। आपने वास्तव में निष्कर्ष निकाला कि "सब कुछ एक वस्तु है" सच नहीं है? –
ओह, मुझे 'आत्म' के बारे में पता नहीं था। मुझे लगता है कि मैं गलत था, धन्यवाद! – CuriousMind
मैं इसे उत्तर में अपग्रेड कर दूंगा :) –