2012-04-12 23 views
9

मैंने पढ़ा है कि डार्ट फ़ंक्शन ओवरलोडिंग का समर्थन नहीं करता है। क्या यह ऑपरेटर ओवरलोडिंग का समर्थन करता है। यदि हां, तो दयालु होगा और मुझे दिखाएगा कि कैसे एक साधारण उदाहरण में यह कैसे किया जाता है। और कुछ फायदे क्या हैं आदि मैं प्रोग्रामिंग के लिए नया हूँ। धन्यवाद।क्या डार्ट समर्थन ऑपरेटर ओवरलोडिंग

+0

आपने यह कहां पढ़ा * डार्ट फ़ंक्शन ओवरलोडिंग * का समर्थन नहीं करता है? –

उत्तर

14

हां डार्ट ऑपरेटर कीवर्ड का उपयोग करके ऑपरेटर ओवरलोडिंग का समर्थन करता है जिसके बाद ऑपरेटर आप ओवरलोड करना चाहते हैं। निम्न उदाहरण overloads MyClass वस्तु के लिए == ऑपरेटर:

class MyClass { 
    operator ==(MyClass other) { 
    // compare this to other 
    } 
} 

लगभग सभी डार्ट्स में निर्मित ऑपरेटरों कुछ उल्लेखनीय अपवाद असाइनमेंट ऑपरेटर = और संदर्भ तुल्यता होने के साथ अतिभारित किया जा सकता ऑपरेटर === (अब मौजूद नहीं है)।

अधिक भार ऑपरेटर का लाभ यह आप ऑपरेटरों है कि एक अच्छी तरह से ज्ञात अर्थ अर्थ जैसे == या + अपने वस्तुओं पर संचालन के लिए राशि पुनः उपयोग कर सकते का सवाल है। उदाहरण के लिए यदि आप एक मैट्रिक्स वर्ग + ऑपरेटर तो आप सिंटैक्स का उपयोग एम 1 + एम 2 अधिक बोझिल m1.plus (एम 2) के बजाय

+0

मुझे बता सकता है कि 'अन्य' कुछ खास है या इसे कुछ और नाम दिया जा सकता है। जैसे == (MyClass ggg) –

+1

@MuhammadUmer अन्य को कुछ भी नामित किया जा सकता है, यह केवल उस क्लास ऑब्जेक्ट का पैरामीटर नाम है जिसका आप तुलना कर रहे हैं यानी यह == अन्य या यह + अन्य –

+0

क्या तर्क एक ही प्रकार का होना चाहिए, या क्या कोई स्कैला की सूची विपक्षी ऑपरेटर :: जैसे ऑपरेटरों को बना सकता है, जहां बाईं ओर का प्रकार नया सिर बनाने के लिए तत्व प्रकार है, और दाईं ओर टाइप सूची प्रकार है? – pohl

6

लार्स विस्तार करने के लिए 'दो मैट्रिक्स जोड़ सकते हैं overloads कि अगर उत्तर, आप इनलाइन फ़ंक्शन सिंटैक्स का उपयोग करके ऑपरेटरों को ओवरलोड भी कर सकते हैं।

class MyClass { 
    operator ==(MyClass o) => id == o.id; 
} 
संबंधित मुद्दे