मैं रूबी के लिए नया हूं, और अब तक, यह पता लगाने के लिए कि "binding" objects का उपयोग कैसे करें मेरे लिए सबसे बड़ा दर्द बिंदु है। अगर मैं सही ढंग से दस्तावेज़ीकरण पढ़ रहा हूं, तो वे लगभग पूरी तरह से अपारदर्शी हैं। बाइंडिंग ऑब्जेक्ट के अंदर दायरे तक पहुंचने के लिए, आपको बाध्यकारी का उपयोग करके रूबी कोड और eval की स्ट्रिंग रखना होगा।रूबी में बाइंडिंग ऑब्जेक्ट्स के साथ बातचीत करने का एकमात्र तरीका 'eval' है?
शायद मैं सिर्फ एक अलग स्कूल से एक शुद्धवादी हूं, लेकिन मैं आम तौर पर बोलने वाली स्ट्रिंग-आधारित 'eval' संरचनाओं के लिए एलर्जी हूं। वहाँ निम्नलिखित, सुरक्षित रूप से और सामान्य स्थिति में से कोई भी कार्य करने के लिए किसी भी तरह से, एक बाध्यकारी वस्तु दिया जाता है:
- सूची संदर्भ में दायरे में पहचानकर्ता बंधन का प्रतिनिधित्व करता है, या सामग्री की एक हैश पुनः प्राप्त।
- बाहरी संदर्भ में कुछ स्थानीय चर के बराबर बाध्यकारी में स्थानीय चर का मान सेट करें। आदर्श रूप में, यह आम तौर पर काम करना चाहिए, भले ही मान एक ऑब्जेक्ट संदर्भ, फ़ाइल हैंडल, या कुछ अन्य जटिल इकाई है।
- (एक्सटेंशन 2 :) एक हैश को देखते हुए, प्रत्येक प्रविष्टि के लिए बाध्यकारी में स्थानीय सेट करें।
- अभी तक बेहतर है, हैश को के साथ बाध्यकारी बनाने के लिए केवल मूल भाषा संरचनाएं और हैश में नाम हैं।
असल में, मैं जानना चाहता हूं कि इनमें से कौन सा संभव है और उन लोगों को कैसे पूरा किया जाए। मैं कल्पना करता हूं कि प्रत्येक के लिए समाधान काफी निकटता से संबंधित होंगे, यही कारण है कि मैं इसे एक ही प्रश्न में डाल रहा हूं।
वैकल्पिक रूप से, क्या कोड को निकालने का कोई तरीका है जिसे पहले से ही बाध्यकारी के संदर्भ में पार्स किया गया है, पर्ल के eval ब्लॉक सिंटैक्स के समान? http://wikis.onestepback.org/index.cgi/Tech/Ruby/RubyBindings.rdoc/style/print
बाकी जिम Shubert के सहायक संकेत के बाद प्रयोग से है:
के आधार पर:
इस प्रश्न को और अधिक @ Jörg W Mittag की आवश्यकता है: पी –