मैं एएस 3 में कुछ स्वच्छ कोडिंग प्रथाओं को लागू करने के लिए हाल ही में कोशिश कर रहा हूं। इनमें से एक एक वस्तु से Arrays के संदर्भों को दूर नहीं किया गया है। मुद्दा यह है कि मैं एक कक्षा से अतिरिक्त और हटाने को नियंत्रित करता हूं और ऐरे के अन्य सभी उपयोगकर्ताओं को केवल संस्करण पढ़ता है।अपरिवर्तनीय संग्रह क्रियालेख 3
पल कि केवल संस्करण पढ़ पर एक ArrayIterator वर्ग मैंने लिखा है, जो एक ठेठ इटरेटर इंटरफेस (hasNext, getNext) को लागू करता है। यह प्रॉक्सी भी बढ़ाता है, इसलिए इसे प्रत्येक लूप के लिए में उपयोग किया जा सकता है जैसे कि ऐरे कर सकते हैं।
तो मेरा सवाल यह है कि यह कई भाषाओं की मौलिक विशेषता नहीं है? संग्रह के केवल विचार पढ़ने के लिए संदर्भों को पारित करने की क्षमता?
इसके अलावा अब है कि वहाँ AS3 में संग्रह के लिए प्रकार सुरक्षा सुधार हुआ है वेक्टर वर्ग के रूप में, जब मैं एक VectorIterator मैं अचल स्थिति के लिए टाइपिंग के गुम हो एक एक वेक्टर लपेट में,। क्या एएस 3 में दो इच्छाओं, अपरिवर्तनीयता और टाइपिंग को लागू करने का कोई तरीका है?
पुनरावर्तक के पीछे तर्कसंगतता क्या है? यह एक आलोचना नहीं है, मैं सिर्फ उत्सुक हूँ। साथ ही, ऑब्जेक्ट गतिशील होने के बिना, परिचित ब्रैकेट सिंटैक्स (myArray [i] = "foo") के साथ एक्सेस-बाय-इंडेक्स प्रकार की कार्यक्षमता प्रदान करने के लिए इसे विस्तारित करना संभव है? –
मुझे लगता है कि मैंने प्रॉक्सी दस्तावेज को पहली बार पर्याप्त रूप से पर्याप्त नहीं पढ़ा। इसके आसपास दूसरी बार ऐसा लगता है कि यह वही है जो प्रॉक्सी वर्ग का उपयोग करने के लिए किया जाता है। –
हाँ :) प्रॉक्सी काफी आसान है, तो आप E4X एपीआई की एक अपेक्षाकृत पूरा क्लोन बना सकते हैं, लेकिन एक है कि XML की बजाय YAML बनाता है, बात की इस प्रकार की, बस getProperty और setProperty तरीकों –