कोटलिन भाषा में, डिफ़ॉल्ट रूप से, जब इसे पेश किया जाता है तो प्रत्येक चर को प्रारंभ करना होता है। इससे बचने के लिए, lateinit
कीवर्ड का उपयोग किया जा सकता है। एक रनटाइम अपवाद में परिणामों को आरंभ करने से पहले lateinit
वैरिएबल का जिक्र करते हुए।कोटलिन क्यों प्राचीन प्रकार के साथ देर से उपयोग करने की अनुमति नहीं देता है?
lateinit
, हालांकि, आदिम प्रकारों के साथ उपयोग नहीं किया जा सकता है। ऐसा क्यों है?
क्या आप उत्तर में स्पष्टीकरण दे सकते हैं, क्यों 'देर से इंट' को रनटाइम में 'इंटेगर' प्रकार के साथ प्रदर्शित नहीं किया जा सकता है, जो प्रारंभ नहीं होने पर 'शून्य' मान धारण करने में सक्षम है? – Ilya
@ इलिया क्योंकि एक 'इंटीगर' एक 'int' नहीं है। यह एक बॉक्सिंग प्रकार है, और यह महत्वपूर्ण रूप से या प्रतिबिंब के माध्यम से सामान सेट करते समय महत्वपूर्ण है। –
तो, मुझे लगता है कि कोटलिन ऑब्जेक्ट करने के लिए आदिम प्रकारों को लपेटता है (उदाहरण के लिए int int int)। हालांकि, इंट क्यों शून्य नहीं हो सकता क्योंकि यह एक वस्तु है? इसके अलावा, हम एक पैरामीटर को निरर्थक और देर से क्यों नहीं घोषित कर सकते हैं? (var x: Int?) – Yao