मैं क्या ActionScript की समझ में से, वहाँ डाले के दो प्रकार हैं:एक्शनस्क्रिप्ट: क्या 'कास्टिंग' का उपयोग करने का कोई अच्छा कारण है?
var bar0:Bar = someObj as Bar; // "as" casting
var bar1:Bar = Bar(someObj); // "class name" casting (for want of a better name)
इसके अलावा, और कृपया मुझे सही कर अगर मैं यहाँ गलत हूँ, as
कास्टिंग या तो वर्ग या null
का एक उदाहरण वापस आ जाएगी, जबकि "वर्ग का नाम" कास्टिंग या तो कक्षा का एक उदाहरण वापस करेगा या अगर कास्ट असंभव है तो अपवाद उठाएगा - इसके अलावा, वे समान हैं।
यह देखते हुए, as
कास्टिंग विफल-तेज़-असफल प्रारंभिक सिद्धांत का भारी उल्लंघन प्रतीत होता है ... और मुझे ऐसी परिस्थिति की कल्पना करने में परेशानी हो रही है जहां as
कास्ट का उपयोग करना बेहतर होगा एक वर्ग नाम कास्ट (संभवतः, instanceof
वहां फेंक दिया गया) से।
तो, मेरा प्रश्न है: as
कास्टिंग का उपयोग करने के लिए कौन सी परिस्थितियों में बेहतर होगा?
ध्यान दें कि सामान्य रूप में लेट बाइंडिंग, जो अक्सर उपयोगी है, एफएफएफ की अपनी व्याख्या के साथ सीधे संघर्ष में है। – dkretz
यह सच है, यह एक्शनस्क्रिप्ट में भी अपरिहार्य है क्योंकि "जेनेरिक" की कोई धारणा नहीं है, इसलिए कंटेनरों से बाहर निकलने वाली चीज़ें अनियमित होंगी। –
(इसलिए यह 'var foo: foo = foo (myArray [i]) पर विफल होने के बजाय बेहतर है और कहीं और एनपीएक्स से निपटने के बजाय) –