Tuesday, 15 May 2012

ruby - How can I make some methods from an array defined outside the class def -


  यह काम करता है: वर्ग MyAwesomeClass variable_of_doom = ["चीज़ें", "सामग्री", "चंकइ_बेकन"] variable_of_doom.each करो | नाम | Define_method ("# {name}") नाम अंत अंत अंत डालता है (MyAwesomeClass.instance_methods - Object.instance_methods)। Inspect # = & gt; ["चीजें", "सामान", "चंककी_बेकन"]   

यह नहीं है, लेकिन मुझे इसकी ज़रूरत है:

  variable_of_doom = ["चीज़ें "," सामान "," चंक्य_बेकन "] वर्ग MyAwesomeClass variable_of_doom.each do | name | Define_method ("# {name}") नाम अंत अंत अंत डालता है (MyAwesomeClass.instance_methods - Object.instance_methods)। Inspect # = & gt; नामः त्रुटि: अपरिभाषित स्थानीय चर या विधि â ???? variable_of_doomâ ???? MyAwesomeClass के लिए: क्लास # = & gt; विधि & lt; कक्षा: MyAwesomeClass & gt; पंक्ति 9 # = & gt; विधि & lt; मुख्य & gt; रूबी में, एक  वर्ग     

> (या def ) ब्लॉक एक नया, अलग दायरे को डिमरेक्ट करता है जिसमें आसपास के स्कोप से स्थानीय वेरिएबल उपलब्ध नहीं हैं। यदि आपको क्षेत्र में रहने के लिए स्थानीय चर के आस-पास की आवश्यकता है, तो आप इसे इस तरह के ब्लॉकों का उपयोग कर सकते हैं, जैसे:

  variable_of_doom = ["चीज़ें", "सामान", "चंकइ_बेकन"] MyAwesomeClass.class_eval do Variable_of_doom.each do | var | व्यावहारिक बुकहेल्फ़ के  रूबी मेटाप्रोग्रामिंग  में वे इस तकनीक का उपयोग "स्कोप फाटक" के रूप में करते हैं:  वर्ग का उपयोग करें  या  def  ब्लॉक जब आप स्थानीय चर के लिए एक नया क्षेत्र बनाना चाहते हैं, तो जब आप नहीं करते हैं तो ब्लॉकों का उपयोग करें।   

No comments:

Post a Comment