डार्ट की final
की अवधारणा है। अधिकांश गतिशील भाषाओं में यह अवधारणा नहीं है।अंतिम संशोधक डार्ट में क्या करता है?
अंतिम क्या है और मैं इसके लिए क्या उपयोग करूं?
डार्ट की final
की अवधारणा है। अधिकांश गतिशील भाषाओं में यह अवधारणा नहीं है।अंतिम संशोधक डार्ट में क्या करता है?
अंतिम क्या है और मैं इसके लिए क्या उपयोग करूं?
final
चरों में कोई मान हो सकता है, लेकिन एक बार असाइन किए जाने पर, अंतिम चर को किसी भी अन्य मूल्य पर पुन: असाइन नहीं किया जा सकता है।
उदाहरण के लिए:
main() {
final msg = 'hello';
msg = 'not allowed'; // **ERROR**, program won't compile
}
final
भी एक वस्तु में उदाहरण चर के लिए इस्तेमाल किया जा सकता। एक वर्ग का अंतिम क्षेत्र कन्स्ट्रक्टर निकाय चलाने से पहले सेट किया जाना चाहिए। एक अंतिम फ़ील्ड नहीं के लिए एक निहित सेटटर बनाया गया है, क्योंकि आप अंतिम चर पर एक नया मान सेट नहीं कर सकते हैं।
class Point {
final num x, y;
Point(this.x, this.y);
}
main() {
var p = new Point(1, 1);
print(p.x); // 1
p.x = 2; // WARNING, no such method
}
यह एहसास है कि final
चर को प्रभावित करता है महत्वपूर्ण है, लेकिन नहीं वस्तु चर द्वारा की ओर इशारा किया। यही है, final
परिवर्तनीय के ऑब्जेक्ट अपरिवर्तनीय नहीं बनाता है।
उदाहरण के लिए:
class Address {
String city;
String state;
Address(this.city, this.state);
}
main() {
final address = new Address("anytown", "hi");
address.city = 'waikiki';
print(address.city); // waikiki
}
उपरोक्त उदाहरण में, address
चर अंतिम के रूप में चिह्नित किया गया है, तो यह हमेशा वस्तु new Address("anytown", "hi")
निर्माता द्वारा instantiated को इंगित करेंगे। हालांकि, ऑब्जेक्ट में स्वयं ही राज्य है जो उत्परिवर्तनीय है, इसलिए यह शहर को बदलने के लिए पूरी तरह से मान्य है। final
द्वारा रोका गया एकमात्र चीज address
चर पुन: असाइन कर रही है।
"एक वर्ग का अंतिम क्षेत्र कन्स्ट्रक्टर निकाय चलाने से पहले सेट किया जाना चाहिए।" - यह वह हिस्सा था जो मुझे सबसे ज्यादा फेंक रहा था। भले ही मैं कन्स्ट्रक्टर में अंतिम चर सेट कर रहा था, यह मेरे लिए भी नहीं हुआ था क्योंकि मुझे त्रुटि मिल रही थी। –
@ केविन शहीन मुझे कन्स्ट्रक्टर के समक्ष अंतिम क्षेत्र स्थापित करके फेंक दिया गया था। कन्स्ट्रक्टर स्तर पर ऐसा करने की मांग करने वालों के लिए, यदि राज्य अंतिम चर था, तो इसे इस प्रकार सेट किया जा सकता है: पता (this.city): state = "Hawaii"; – djm