में एक अन्य वैरिएबल नाम के रूप में एक चर के मान का उपयोग करके मैं रूबी सीखने में शुरुआत कर रहा हूं और मैंने एक प्रोग्राम लिखा है जो कुछ संख्याएं उत्पन्न करता है और उन्हें @one, @two, @three आदि को चर के रूप में असाइन करता है। उपयोगकर्ता इसके नाम को इनपुट करके बदलकर एक चर निर्दिष्ट कर सकता है (उदाहरण के लिए एक)। मुझे फिर कुछ @ @ [valueofinout] = asd 'करने की ज़रूरत है। मैं यह कैसे करूँगा, और क्या एक बेहतर तरीका है जिस तरह से मैं सोच रहा हूं निराश होना प्रतीत होता है? मुझेरूबी
x = "myvar"
myvar = "hi"
eval(x) -> "hi"
लेकिन मुझे पूरी तरह से समझ में नहीं आता कि दूसरी पंक्ति की आवश्यकता क्यों है। मेरे मामले में मैं
@one = "21"
input = "one"
input = "@" + input
changeto = "22"
eval(input) -> changeto
वाह, यह वास्तव में एक ऐसा क्षेत्र है जहां PHP वाक्यविन्यास की सफाई के मामले में रूबी को आउटहाइन करता है। http://stackoverflow.com/a/4169891/2951835 – ahnbizcad
रुबी इसे करना मुश्किल बनाता है क्योंकि यह बदसूरत है, आपको शायद ही कभी एक उदाहरण के उपयोगकर्ता निर्दिष्ट चर सेट करने की आवश्यकता है जब तक आप मेटाप्रोग्रामिंग नहीं कर लेते। वैश्विक चर के साथ गतिशील रूप से गड़बड़ करना एक सुरक्षा छेद है; यदि आप उपयोगकर्ता द्वारा परिभाषित चर के सेट चाहते हैं तो शायद आप हैश चाहते हैं। – rjh