2012-11-27 10 views
7

क्या कोई मुझे बता सकता है कि const कीवर्ड का उपयोग कैसे/कब/क्यों करें, या यह सिर्फ "स्थिर चर घोषित करने का एक तरीका है"?डार्ट में उपयोग किए जाने वाले "कॉन्स्ट" कीवर्ड का क्या अर्थ है?

int x = 5; 

और

const int x = 5; 

आप लोग मुझे एक उदाहरण देता हूँ कृपया सकते हैं: यदि हां, तो इस के बीच अंतर क्या है?

उत्तर

6

const का मतलब है समय संकलित करना। अभिव्यक्ति मान संकलन समय पर जाना जाना चाहिए। const "मान" को संशोधित करता है।

news.dartlang.org से,

"स्थिरांक" एक अर्थ में थोड़ा और अधिक जटिल और डार्ट में सूक्ष्म है कि है। कॉन्स मान संशोधित करता है। संग्रह बनाते समय आप इसका उपयोग कर सकते हैं, जैसे const [1, 2, 3], और ऑब्जेक्ट्स (नए की बजाय) जैसे कॉन्स्ट पॉइंट (2, 3) का निर्माण करते समय। यहां, कॉन्स का अर्थ है कि ऑब्जेक्ट का पूरा गहरी स्थिति पूरी तरह से संकलित समय पर निर्धारित किया जा सकता है और ऑब्जेक्ट जमे हुए और पूरी तरह से अपरिवर्तनीय होगा।

अगर आप का उपयोग

const x = 5 तो चर x तरह

const aConstCollection = const [x]; 

एक cosnt संग्रह में इस्तेमाल किया जा सकता है अगर आप const का उपयोग नहीं करते, और सिर्फ तब x = 5 का उपयोग

const aConstCollection = const [x]; अवैध है www.dartlang.org

class SomeClass { 
    static final someConstant = 123; 
    static final aConstList = const [someConstant]; //NOT allowed 
} 

class SomeClass { 
    static const someConstant = 123; // OK 
    static final startTime = new DateTime.now(); // OK too 
    static const aConstList = const [someConstant]; // also OK 
} 
+0

से

अधिक उदाहरण कारण है कि मैं स्थिर बिना स्थिरांक का उपयोग नहीं कर सकते हैं? मेरे कॉन्स को स्थैतिक वर्ग के दायरे की आवश्यकता नहीं है, इसलिए मुझे इसे स्थिर के रूप में घोषित करने के लिए मजबूर क्यों किया जाता है? – robbie

+0

@robbie आपके निरंतर भी प्रत्येक उदाहरण के लिए दोहराने की आवश्यकता नहीं है। चूंकि यह स्थिर है, यह कभी नहीं बदलेगा, तो अंतरिक्ष को डुप्लिकेट क्यों करें? स्थिरांक की स्थैतिक घोषणा को मजबूर कर, उन्हें केवल एक बार उदाहरण के बजाए कक्षा के लिए स्मृति में रखा जाता है। मेरा मानना ​​है कि यह स्पष्टीकरण सी # और डार्ट दोनों पर लागू होता है। –

+1

डार्ट में कॉन्स वैल्यू "कैनोलिकलाइज्ड" हैं, इसलिए उनमें से केवल एक ही उदाहरण है, और इसलिए "स्थिर कॉन्स" अनावश्यक है: "कॉन्स्ट" पर्याप्त होगा। [इस पर सेठ लड के लेख] का अंतिम अनुच्छेद (http://news.dartlang.org/2012/06/const-static-final-oh-my.html) वास्तव में सुझाव देता है कि "कॉन्स्ट" पसंदीदा शैली है और "स्थिर कॉन्स" निराश। – dharcourt

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