रूबी में, सब कुछ एक वस्तु माना जाता है। लेकिन मैं की तरहरूबी फ़ंक्शन ऑब्जेक्ट प्राप्त करना
def f
"foo"
end
अजगर के विपरीत, समारोह वस्तु हमेशा की तरह परिभाषित करने के लिए एक बड़ी समस्या है, च समारोह परिणाम, नहीं समारोह ही है। इसलिए, f()
, f
, ObjectSpace.f
सभी "foo"
हैं। f.methods
केवल स्ट्रिंग विधि सूची देता है।
मैं फ़ंक्शन ऑब्जेक्ट को कैसे एक्सेस करूं?
यह (कई) चीजों में से एक है जो मुझे रूबी में बेर्सक करता है। आप नाम के बिना किसी फ़ंक्शन को नाम से संदर्भित नहीं कर सकते हैं। मेरे गाय ऑर्कर्स के साथ इस बारे में तर्क है। –
मुझे लगता है कि रूबी का अपना तरीका है और अन्य भाषाओं में उपयोग किए जाने वाले कुछ सिद्धांत बस लागू नहीं होते हैं (इस मामले में मैं शायद प्रो के साथ फ़ंक्शन को परिभाषित करता हूं, या कोड ब्लॉक का उपयोग करता हूं), लेकिन मुझे अभी भी आश्चर्य है कि क्या कोई सकारात्मक उत्तर है मेरे प्रश्न – mykhal
@ जोनाथन: आप इसे कॉल किए बिना किसी विधि का नाम देख सकते हैं। एक विधि का नाम एक प्रतीक है। तो इस विधि का नाम ': f' है। रूबी अपनी मेटाप्रोग्रामिंग क्षमताओं के लिए बहुत प्रसिद्ध है, और विधि नाम हर समय उपयोग किया जाता है। – Chuck