Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Android

कोटलिन - आलसी बनाम लेटिनिट का उपयोग करके संपत्ति आरंभीकरण

<घंटा/>

कोटलिन पुस्तकालय संपत्ति घोषणा के लिए दो अलग-अलग एक्सेस संशोधक प्रदान करता है।

इस लेख में, हम इन दो एक्सेस-संशोधकों के बीच अंतर को उजागर करेंगे और हम उन्हें अपने एप्लिकेशन में कैसे उपयोग कर सकते हैं।

लेटिनिट

"लेटइनिट" वैरिएबल बनाने के लिए, हमें बस "लेटइनिट" कीवर्ड को उस वेरिएबल के एक्सेस मॉडिफायर के रूप में जोड़ना होगा। कोटलिन में "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

  1. कोटलिन का उपयोग करके एंड्रॉइड में ग्रिड व्यू स्क्रॉलिंग को कैसे अक्षम करें?

    यह उदाहरण दर्शाता है कि कोटलिन का उपयोग करके एंड्रॉइड में ग्रिड व्यू स्क्रॉलिंग को कैसे अक्षम किया जाए। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में

  1. CSS z-index प्रॉपर्टी का उपयोग करना

    z-index प्रॉपर्टी का उपयोग स्थिति . के साथ किया जाता है परतों का प्रभाव बनाने के लिए संपत्ति। आप निर्दिष्ट कर सकते हैं कि कौन सा तत्व शीर्ष पर आना चाहिए और कौन सा तत्व नीचे आना चाहिए। उदाहरण आप z-index को लागू करने के लिए निम्न कोड को चलाने का प्रयास कर सकते हैं संपत्ति -

  1. सीएसएस में संपत्ति का उपयोग प्रदर्शित करें

    सभी HTML तत्वों के पास उनकी CSS प्रदर्शन संपत्ति के लिए एक डिफ़ॉल्ट मान सेट होता है। यह गुण निर्दिष्ट करता है कि दस्तावेज़ में तत्व कैसे प्रस्तुत किया जाएगा। नोट - डिफॉल्ट डिस्प्ले प्रॉपर्टी को ओवरराइड किया जा सकता है लेकिन यह तत्व के प्रकार को केवल दस्तावेज़ पर उसके प्रदर्शन व्यवहार को नहीं बदलता