मुझे यह बहुत अजीब लगता है कि रूबी में यह संभव है (मैं तुरंत नहीं कहूँगा कि कैसे):
obj = #code redacted
print obj.state # Some value.
LValue = obj
print obj.state # Different value!
आपकी चुनौती इस फ़ॉर्म के मोटे तौर पर कोड बनाने की है। एक ऑब्जेक्ट बनाएं और इसे एक वैरिएबल पर असाइन करें। इसमें state
ऊपर की तरह कुछ परिभाषित विशेषता (या निर्धारक, सुस्पष्ट विधि) होनी चाहिए , जो कि वस्तु को एक नए पहचानकर्ता ( LValue
ऊपर) को सौंपे जाने के बाद बदल जाती है , भले ही आप अभी भी पुराने पहचानकर्ता ( obj
उपरोक्त) का उपयोग इसके संदर्भ में करते हों।
जोर देने के लिए संपादित करें : state
या समतुल्य होना अनिवार्य है, इसलिए मूल्य को संशोधित करने या किसी अन्य कारण से जब एक पंक्ति में कई बार कॉल किया जाता है, तो एक मान्य समाधान नहीं होता है। या, अधिक बस, यह असाइनमेंट होना चाहिए जो राज्य को बदलता है।
असाइनमेंट के साथ कोई भी भाषा योग्य है, हालाँकि कुछ ऐसे भी हैं जहाँ पूरी तरह से वैध समाधान नहीं है। मैं अपना रूबी जवाब पोस्ट करूंगा यदि कुछ दिनों के बाद कोई और नहीं मिलता है, और रोलिंग के आधार पर उच्चतम-मतदान जवाब स्वीकार करते हैं।
(setq a (list "val")) (setq b (nconc a "val2"))
उदाहरण के लिए। उस बिंदु पर a
मूल्यांकन समाप्त होता है ("val" . "val2")
।
LValue = obj
लिए लाइन आवश्यक होनी चाहिएstate
? (मैं सिर्फ C # में एक संपत्ति बना सकता था जो हर बार आपको मिलता है)