सामान्य रूप से, मैं उस ऑब्जेक्ट का संदर्भ कैसे प्राप्त कर सकता हूं जिसका नाम मेरे पास स्ट्रिंग में है?एक इंस्टेंस वैरिएबल का मान प्राप्त करें जिसका नाम
अधिक विशेष रूप से, मेरे पास पैरामीटर नामों की एक सूची है (सदस्य चर - गतिशील रूप से निर्मित इसलिए मैं उन्हें सीधे संदर्भित नहीं कर सकता)।
प्रत्येक पैरामीटर एक ऑब्जेक्ट है जिसमें from_s
विधि भी है।
define_method(:from_s) do | arg |
@ordered_parameter_names.each do | param |
instance_eval "field_ref = @#{param}"
field_ref.from_s(param)
end
end
example_variable_get ("@ # {name}") वैरिएबल के मान को वापस नहीं करता है? मुझे वास्तविक वस्तु के संदर्भ की आवश्यकता है। मैंने कई वैरिएबल + ऑर्डर के नामों के साथ एक सरणी रखने के बजाय फिर से लिखना समाप्त कर दिया, मैंने पैरामीटर को सरणी में डाल दिया (डिज़ाइन निर्णय यह था कि प्रत्येक बार सरणी को खोजकर या अनुकूलित करके अनुकूलित करने के लिए चर उनके नामों के साथ एक अतिरिक्त सरणी जिसका उपयोग केवल तभी किया जाएगा जब –
नहीं: instance_variable_get ("@ # {name}") वास्तविक वस्तु देता है। –
स्पष्टता के लिए मृत धागे को उजागर करना। पूरा उदाहरण होगा: वर्ग कंप्यूटर attr_read: CPUs डीईएफ़ नई (सीपीयू) @cpus = CPUs अंत अंत ? –