2009-05-11 15 views
23

क्या कोई मुझे बता सकता है कि एक्शनस्क्रिप्ट 3, एक स्थाई रूप से टाइप की गई भाषा में जेनिक्स क्यों नहीं है? क्या यह बहुत अधिक काम है? एक ऐतिहासिक बात? क्या "फर्जी" करने का कोई तरीका है कि मैंने अभी तक नहीं उठाया है?एक्शनस्क्रिप्ट में "जेनेरिक" क्यों नहीं है?

संपादित करें: उत्तर के लिए बहुत बहुत धन्यवाद! Vector कक्षा मूल रूप से जो मैं खोज रहा था, और दूसरी जानकारी भी उपयोगी थी।

+1

मैंने 'वेक्टर ' देखा और उत्साहित हो गया कि एक्शनस्क्रिप्ट में सामान्य उद्देश्य के जेनेरिक थे जिन्हें मैं अभी तक अभी तक नहीं जानता था। * साई *। मुझे अपनी उम्मीदों को पाने के लिए बेहतर जाना चाहिए था। –

+0

आप हक्स का प्रयास कर सकते हैं। इसमें जेनेरिक और अन्य शानदार विशेषताएं हैं। और फ्लैश में संकलित इन-द-बॉक्स। haxe.org और try.haxe.org –

उत्तर

23

नया Vector class जेनिक्स का एक रूप है जो अब फ़्लैश प्लेयर 10 के लिए संकलित किए जाने पर एक्शनस्क्रिप्ट 3 का समर्थन करता है। वे अभी तक आपके अपने सामान्य वर्गों के विनिर्देश का समर्थन नहीं करते हैं।

मुझे लगता है कि एडोब अंततः ईएस 4 मानक लागू करेगा। यह अच्छा होगा अगर उनके पास एक प्रतियोगी था जो उन्हें सही दिशा में तेज कर सकता था। जब मैं CS4 में स्थानांतरित हो गया था, तो मुझे एएस 3 के अपडेट से थोड़ी अधिक उम्मीद थी, लेकिन मुझे लगता है कि क्रांतिकारी वेक्टर वर्ग को पर्याप्त होना होगा।

ऐसा लगता है कि उन्होंने फ्लेक्स और एआईआर के लिए पुस्तकालयों को बरकरार रखने में काफी समय बिताया है, इसलिए हो सकता है कि वे बाद में भाषा समर्थन में सुधार करने के लिए वापस जाएंगे, लेकिन शायद यह वास्तविक प्राथमिकता नहीं है। याद रखें, एडोब पैसे के लिए है, न कि सबसे प्यारी संभव भाषा बनाने के लिए अच्छा महसूस करने के लिए।

+3

... हुह? सबसे पहले "ईएस 4 मानक" जैसी कोई चीज़ नहीं है, और संभवतया कभी भी ऐसा नहीं होगा क्योंकि एक्मा ने इसे छोड़ दिया था। दूसरा, एडोब * ने ES4 मानक के मसौदे को कार्यान्वित किया, और वे बहुत ही हैं जो ऐसा करते हैं। (उन्होंने इसके लिए एक वीएम लिखा और इसे एक्मा ने इसे छोड़ने से पहले मोज़िला फाउंडेशन को दान दिया।) -> http://en.wikipedia.org/wiki/Ecmascript – fenomas

+2

@ फेनोमास पोस्ट को संपादित करने के लिए स्वतंत्र महसूस करें यह और सही है! – Kekoa

+0

अब Google डैश उन्हें थोड़ा डरा रहा है, आखिर में अंत में कई वर्षों से पूछे जाने वाले भाषा सुविधाओं में सुधार करने के बारे में बात करना शुरू कर दिया - लुकअप "एक्शनस्क्रिप्ट अगला"। – JTtheGeek

0

चलो पहले उचित कंटेनर और actionscript में एल्गोरिदम और फिर जेनरिक के बारे में चिंता ...

AS3 जावास्क्रिप्ट से बहुत अलग नहीं है, btw, तो आपके सवाल का एक तरह से जे एस के रूप में अच्छी तरह लागू होगा।

+1

mmm इतना नहीं है। जब * टाइपिंग और क्लास नोटेशन के बिना * एक्शनस्क्रिप्ट/जावास्क्रिप्ट के समान ही होता है ... लेकिन जब आप पैकेज, क्लास सिंटैक्स और स्टेटिक टाइपिंग का उपयोग शुरू करते हैं, तो जिस तरह से आप दो भाषाओं का उपयोग करते हैं, वह काफी अलग हो जाता है। –

+8

ठीक है, यह सी ++, या बेहतर कहने जैसा है, उद्देश्य-सी, सी से "बहुत अलग नहीं" है।वास्तव में हालांकि सी ++/ओबीजे-सी सी का एक सुपरसेट है, यह वास्तव में यह कहना सही नहीं है कि वे मूल रूप से एक ही चीज़ हैं। – Kekoa

2

मेरा मानना ​​है कि यह एक ऐतिहासिक बात है। ActionScriptECMAScript पर आधारित है (जावास्क्रिप्ट ईसीएमएस्क्रिप्ट पर भी आधारित है)। ईसीएमएस्क्रिप्ट एक गतिशील रूप से टाइप की गई भाषा है, जिसका अर्थ है कि चर के प्रकार उनके घोषित नहीं होते हैं। जेनेरिक स्थिर रूप से टाइप की गई भाषाओं में अधिक उपयोगी होते हैं, जिसमें चर के प्रकार को आगे घोषित किया जाता है। एक स्थिर रूप से टाइप की गई भाषा में, जेनेरिक के बिना आप रूट ऑब्जेक्ट से हर समय कास्टिंग कर रहे हैं (उदाहरण के लिए, जावा में ऑब्जेक्ट)। यह ईसीएमएस्क्रिप्ट में कोई समस्या नहीं है, क्योंकि आप किसी भी डेटा संरचना में जो कुछ भी चाहते हैं उसे डाल सकते हैं।

तो एक्शनस्क्रिप्ट ने जेनेरिक को क्यों नहीं जोड़ा जब उन्होंने ईसीएमएस्क्रिप्ट को स्थिर टाइपिंग जोड़ा? मैं इसके बारे में निश्चित नहीं हो सकता, लेकिन मुझे लगता है कि आपके प्रश्न का आधार थोड़ा सा है - जेनेरिक-एस्क कंटेनर हैं, जैसे कि Vector। मुझे लगता है कि वे पीछे की संगतता के लिए ईसीएमएस्क्रिप्ट (ऑब्जेक्ट्स और एरे) के गतिशील रूप से टाइप किए गए कंटेनर रखेंगे, लेकिन वे पहले ही एएस 2 और एएस 3 के बीच तोड़ चुके हैं, इसलिए मुझे यकीन नहीं है।

2

Parameteric प्रकार (शब्द 'जेनरिक' आमतौर पर ECMAScript में generic methods के लिए, बल्कि पैरामीट्रिक प्रकार और क्रम बहुरूपता जावा में इस्तेमाल के संयोजन से प्रयोग किया जाता है) ES4 के हिस्से के रूप proposed थे, लेकिन ES4 खंडित और प्रकार प्रणाली की ज्यादा ईएस (एक्शनस्क्रिप्ट में लागू भागों सहित) के लिए प्रस्तावित अगले संस्करण में नहीं जा रहे हैं। मैं यह नहीं कह सकता कि एडोब खुद से इस तरह से जाना चाहेगा या नहीं।

संबंधित मुद्दे