class A
def bomb ; "bomb" ; end
end
class B ; end
bomb = A.instance_method(:bomb)
b = B.new
bomb.bind(b)
को होने के लिए मजबूर कर सकता है वर्तमान में यह त्रुटि लेखन त्रुटि फेंकता जानना चाहते हैं इन अनबाउंड विधियों के साथ, संभावनाएं थोड़ा सीमित हैं। इन मामलों में (और मैं केवल बेवकूफ कार्यों का जिक्र नहीं कर रहा हूं) यह सही समझ में आएगा? और एक निष्पादन त्रुटि पर्याप्त हो गई होगी, अगर मैं ए से वैरिएबल को संभालेगा जो बी में दोहराया नहीं गया है, तो मैं वास्तव में जानना चाहता हूं कि इस बाध्य को कैसे मजबूर किया जाए।
कुछ दिलचस्प है कि संभव है: 'Object.instance_method (: to_s)। (" हैलो दुनिया ") .bind फोन # =>" # <स्ट्रिंग: 0x0000000195e1f0> "'। मुझे नहीं लगता कि यद्यपि आपके उदाहरण में बाइंडिंग को मजबूर करना संभव है। –
हां, ऐसा इसलिए है क्योंकि स्ट्रिंग ऑब्जेक्ट से विरासत में है, और आप अपने बच्चों के वर्ग के उदाहरणों के लिए सुपरक्लास इंस्टेंस विधियों को बाध्य कर सकते हैं। एक उदाहरण: कक्षा ए; डीएफ टी; "ए" ; समाप्त ; समाप्त ; कक्षा बी <ए; डीएफ टी; "बी"; समाप्त ; समाप्त ; A.instance_method (: टी)। बाइंड (बीन्यू)। कॉल। लेकिन फिर भी, मैं विधि को एक फ़ंक्शन और फिर एक प्रोसेस बनाना चाहता हूं और फिर जहां चाहूं उसे कॉल करूँगा। लेकिन शायद मैं एक सपने देखने वाला हूं :) – ChuckE
यदि 'ए' 'मॉड्यूल' होता, तो यह रूबी 2 में संभव है –