2012-09-14 11 views
10

डार्ट में संकलन-समय स्थिरांक की अवधारणा है। एक संकलन-समय निरंतर संकलन समय पर पार्स किया गया है और बनाया गया है, और canonicalized।डार्ट ने समय स्थिरांक संकलित क्यों किया है?

class Point { 
    final num x, y; 
    const Point(this.x, this.y); 
} 

यहाँ और कैसे आप इसका इस्तेमाल बताया गया है::

उदाहरण के लिए, यहाँ प्वाइंट के लिए एक const निर्माता है

main() { 
    var p1 = const Point(0, 0); 
    var p2 = const Point(0, 0); 
    print(p1 == p2); // true 
    print(p1 === p2); // true 
} 

यह एक अप्रत्यक्ष सुविधा है, सुविधाओं के लिए उचित रूप में कोई समानताएं के साथ अन्य गतिशील भाषाओं में। const ऑब्जेक्ट्स पर प्रतिबंध हैं, जैसे सभी फ़ील्ड अंतिम होना चाहिए और इसमें एक कॉन्स कंस्ट्रक्टर होना चाहिए।

डार्ट में संकलन-समय स्थिरांक क्यों हैं?

उत्तर

10

मेलिंग सूची से, फ्लोरियन Loitsch लिखते हैं:

संकलन समय स्थिरांक की कैनॉनिकलाइज़ेशन संपत्ति अच्छा है, लेकिन नहीं मुख्य कारण उन्हें है। संकलन-समय स्थिरांक का वास्तविक लाभ यह है कि वे निर्माण पर मनमाने ढंग से निष्पादन की अनुमति नहीं देते हैं और इसलिए उन स्थानों पर उपयोग किया जा सकता है जहां हम निष्पादित कोड नहीं चाहते हैं। स्टेटिक वैरिएबल प्रारंभकर्ता, उदाहरण के लिए, प्रारंभिक रूप से शीर्ष-स्तर पर निष्पादन से बचने के लिए संकलन-समय स्थिरांक तक सीमित थे। संक्षेप में, वे सुनिश्चित करते हैं कि एक प्रोग्राम 'मुख्य' से शुरू होता है और कहीं और नहीं।

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