मेरे डार्ट आधारित एप्लिकेशन में मैंने सिर्फ यह देखा कि मैं newकीवर्ड को छोड़ सकता हूं और सब कुछ पूरी तरह से ठीक है।
के बजाय final widget = new Widget();मैं भी उपयोग कर सकते हैं final widget = Widget();।
क्या इससे कोड में कोई प्रभाव पड़ता है?
मेरे डार्ट आधारित एप्लिकेशन में मैंने सिर्फ यह देखा कि मैं newकीवर्ड को छोड़ सकता हूं और सब कुछ पूरी तरह से ठीक है।
के बजाय final widget = new Widget();मैं भी उपयोग कर सकते हैं final widget = Widget();।
क्या इससे कोड में कोई प्रभाव पड़ता है?
जवाबों:
नहीं, यह नहीं है। साथ डार्ट 2 (अधिक जानकारी के साथ घोषणा के लिए क्लिक करें)new और यह भी constकीवर्ड किए गए थे वैकल्पिक ।
इसका मतलब यह है कि अपने दम पर new Widget()ठीक वैसा ही करता है Widget()।
constकीवर्ड, हालांकि, एक मूल्य है कि एक नहीं होगा बदल सकते हैं constएक करने के लिए परोक्ष const।
इसलिए आपको constजरूरत पड़ने पर स्पष्ट रूप से निर्दिष्ट करना होगा ।
newआवश्यकता हो। यदि आप newएक सही कार्यक्रम से चूक जाते हैं, तो यह हमेशा उसी तरह काम करता रहेगा। आप निकालते हैं constज्यादातर मामलों आप चाहते हैं जहां, एक काम कर कार्यक्रम से तो है लिखने के constलिए कार्यक्रम मान्य होने के लिए, यह अभी भी मान्य होगा। किसी भी समय पहले से ही एक constअभिव्यक्ति है, आप नेस्टेड कास्ट को छोड़ सकते हैं।
डार्ट 2 में, यदि आप एक निर्माता को एक फ़ंक्शन की तरह आमंत्रित करते हैं, बिना newया constसामने, तो यह उपयोग करने के बराबर है new। यदि आप एक कॉस्ट इनवोकेशन चाहते हैं, तो आपको constसामने रखना चाहिए ।
एक कास्ट एक्सप्रेशन के अंदर , आपको constफिर से लिखने की ज़रूरत नहीं है , और कुछ संदर्भों में जिन्हें कॉस्ट एक्सप्रेशंस (जैसे स्विच केस एक्सप्रेशन और कॉन्स्टेबल वैरिएबल के इनिशियलाइज़र) की आवश्यकता होती है, आपको बाहरी कॉस्ट की भी ज़रूरत नहीं है।
इसलिए आपको कभी लिखने की जरूरत नहीं है new।
डार्ट भाषा टीम उन अभिव्यक्तियों की अनुमति देना चाहती है जहां आप newया तो सम्मिलित कर सकते हैं या फिर constभी मंगलाचरण सही हो सकता है (अर्थात, निरंतर तर्क के साथ एक निर्माणकर्ता) डिफ़ॉल्ट के constबजाय डालने के लिए डिफ़ॉल्ट रूप से new, Dart 2 के प्रारंभिक अद्यतन में उम्मीद है। उस कारण से , मैं newइसके सामने Object()या किसी अन्य कास्ट कंस्ट्रक्टर को लिखने की सलाह देता हूं , जहां आपको एक नया उदाहरण होने के लिए ऑब्जेक्ट की आवश्यकता होती है। यह एक बहुत ही दुर्लभ मामला है, आमतौर पर आप अपनी अपरिवर्तनीय वस्तु की पहचान के बारे में परवाह नहीं करते हैं (यही कारण है कि सम्मिलित constकरना एक अच्छा विचार माना जाता है)।
अन्य सभी उत्तर के रूप में, डार्ट 2 में, का उपयोग newकरना वैकल्पिक है। इसके अलावा, का उपयोग प्रभावी डार्ट दिशानिर्देश द्वारा new हतोत्साहित किया जाता है ।
newकीवर्ड अब की डार्ट 2. के रूप में वैकल्पिक बनाया गया था, एक वर्ग बुला हमेशा उस वर्ग का एक नया उदाहरण वापस आ जाएगी। मेरी सिफारिश के अनुसार, आप इसका उपयोग कर सकते हैं ( नॉट मैनडेटरी ) एक लेआउट परिभाषा के बाहर, लेकिन लेआउट के अंदर छोड़ दें।
एक और बात जो मैं आप लोगों के साथ साझा करना चाहूंगा वह यह है कि यदि आप विगेट्स की घोषणा करते समय उपयोग newया constकीवर्ड करते हैं , तो आप + आइकन भी देख सकते हैं, जिसका उपयोग आप विजेट बॉडी कोड को संक्षिप्त और विस्तारित करने के लिए कर सकते हैं। यह उपयोगी है जब आप डार्ट फ़ाइल में बाकी विजेट कोड को संक्षिप्त करना / छिपाना चाहते हैं जबकि उसी फ़ाइल में किसी अन्य विजेट कोड पर काम कर रहे हैं।
newहतोत्साहित किया जाता है: इसका उपयोग ऐसा लगता है जैसे यह बिना शर्त एक नया उदाहरण बनाता है जब यह नहीं हो सकता है।
newयाconstअभी भी आवश्यक हैं (मुझे उदाहरण या नियम याद नहीं हैं)। Dart 2 के बाद वे इसे वैकल्पिक बनाने के लिए हर जगह एक और प्रयास कर सकते हैं।