कोटलिन पुस्तकालय संपत्ति घोषणा के लिए दो अलग-अलग एक्सेस संशोधक प्रदान करता है।
इस लेख में, हम इन दो एक्सेस-संशोधकों के बीच अंतर को उजागर करेंगे और हम उन्हें अपने एप्लिकेशन में कैसे उपयोग कर सकते हैं।
लेटिनिट
"लेटइनिट" वैरिएबल बनाने के लिए, हमें बस "लेटइनिट" कीवर्ड को उस वेरिएबल के एक्सेस मॉडिफायर के रूप में जोड़ना होगा। कोटलिन में "lateInit" का उपयोग करने के लिए शर्तों का एक सेट निम्नलिखित है जिसका पालन करने की आवश्यकता है।
-
एक परिवर्तनीय चर के साथ "lateInit" का प्रयोग करें। इसका मतलब है कि, हमें "lateInit" के साथ "var" कीवर्ड का उपयोग करना होगा।
-
"lateInit" की अनुमति केवल गैर-शून्य डेटा प्रकारों के साथ है।
-
"lateInit" आदिम डेटा प्रकारों के साथ काम नहीं करता है।
-
"lateInit" का उपयोग तब किया जा सकता है जब परिवर्तनीय संपत्ति में कोई गेटर न हो और सेटर तरीके।
उदाहरण
हम एक वैरिएबल को lateInit . के रूप में घोषित करेंगे और हम देखेंगे कि हम इसे पूरे कार्यक्रम में कैसे एक्सेस कर सकते हैं।
class Tutorial { lateinit var name : String fun checkLateInit(){ // checking whether the value is assigned or not if(this::name.isInitialized) println("Your value is not assigned"); else{ // initializing name name = "www.tutorialspoint.com/" println(this.name) // this will return true } } } fun main() { var obj=Tutorial(); obj.checkLateInit(); }
आउटपुट
एक बार जब आप कोड निष्पादित करते हैं, तो यह निम्न आउटपुट उत्पन्न करेगा -
www.tutorialspoint.com/
आलसी शुरुआत
कुशल स्मृति प्रबंधन के लिए, कोटलिन ने एक नई सुविधा पेश की है जिसे आलसी आरंभीकरण . कहा जाता है जब आलसी कीवर्ड का उपयोग किया जाता है, ऑब्जेक्ट तभी बनाया जाएगा जब उसे कॉल किया जाएगा, अन्यथा कोई ऑब्जेक्ट निर्माण नहीं होगा। आलसी () एक फ़ंक्शन है जो लैम्ब्डा लेता है और आलसी . का उदाहरण देता है जो आलसी गुणों के प्रतिनिधि के रूप में काम कर सकता है जिस पर इसे लागू किया गया है। इसे वस्तुओं के अनावश्यक आरंभीकरण को रोकने के लिए डिज़ाइन किया गया है।
-
आलसी का उपयोग केवल गैर-शून्य चर के साथ किया जा सकता है।
-
वेरिएबल केवल val हो सकता है। "वर" अनुमति नहीं है।
-
ऑब्जेक्ट केवल एक बार प्रारंभ किया जाएगा। इसके बाद, आपको कैश मेमोरी से मान प्राप्त होता है।
-
ऑब्जेक्ट को तब तक इनिशियलाइज़ नहीं किया जाएगा जब तक कि इसे एप्लिकेशन में उपयोग नहीं किया गया हो।
उदाहरण
इस उदाहरण में, हम एक आलसी चर "myName" . घोषित करेंगे और हम देख सकते हैं कि कोड के इस हिस्से पर कॉल केवल एक बार होगी और जब मान प्रारंभ किया जाता है, तो यह पूरे एप्लिकेशन में मान को याद रखेगा। एक बार आलसी इनिशियलाइज़ेशन का उपयोग करके मान असाइन किए जाने के बाद, इसे पुन:असाइन नहीं किया जा सकता है।
class Demo { val myName: String by lazy { println("Welcome to Lazy declaration"); "www.tutorialspoint.com" } } fun main() { var obj=Demo(); println(obj.myName); println("Second time call to the same object--"+obj.myName); }
आउटपुट
एक बार जब आप कोड निष्पादित करते हैं, तो यह निम्न आउटपुट उत्पन्न करेगा -
Welcome to Lazy declaration www.tutorialspoint.com Second time call to the same object--www.tutorialspoint.com