Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

จะตรวจสอบได้อย่างไรว่าตัวแปร lateInit ได้รับการเริ่มต้นใน Kotlin แล้ว?


ตัวแปรใด ๆ ที่เริ่มต้นหลังจากการประกาศนั้นเรียกว่า "ตัวแปร lateinitialized" ในภาษาโปรแกรมทั่วไป ตัวแปรที่ไม่ใช่ประเภท NULL ใดๆ จำเป็นต้องเริ่มต้นในตัวสร้าง แต่บางครั้ง นักพัฒนามักลืมตรวจสอบค่า NULL ซึ่งทำให้เกิดข้อผิดพลาดในการเขียนโปรแกรม เพื่อหลีกเลี่ยงสถานการณ์นี้ Kotlin ได้แนะนำตัวแก้ไขใหม่ที่เรียกว่า "lateInit" นอกจากตัวแก้ไขนี้แล้ว Kotlin ยังมีวิธีการตรวจสอบว่าตัวแปรนี้เริ่มต้นหรือไม่

ในการสร้างตัวแปร "lateInit" เราเพียงแค่เพิ่มคำหลัก "lateInit" เป็นตัวแก้ไขการเข้าถึงของตัวแปรนั้น ต่อไปนี้เป็นเงื่อนไขสองสามข้อที่ต้องปฏิบัติตามเพื่อใช้ "lateInit" ใน Kotlin -

  • ใช้ "lateInit" กับตัวแปรที่ไม่แน่นอน นั่นหมายความว่า เราต้องใช้คีย์เวิร์ด "var" กับ "lateInit"

  • "lateInit" ใช้ได้กับประเภทข้อมูลที่ไม่ใช่ค่า NULL เท่านั้น

  • "lateInit" ใช้ไม่ได้กับประเภทข้อมูลพื้นฐาน

  • "lateInit" สามารถใช้เมื่อคุณสมบัติของตัวแปรไม่มี getter และ เซ็ตเตอร์ วิธีการ

ตัวอย่าง

ในตัวอย่างนี้ เราจะประกาศตัวแปรเป็นตัวแปร "lateInit" และเราจะใช้ฟังก์ชันไลบรารี Kotlin เพื่อตรวจสอบว่าตัวแปรนั้นเริ่มต้นขึ้นหรือไม่

class Tutorial {

   lateinit var name : String

   fun checkLateInit(){
      println(this::name.isInitialized)
      // it will print false as the value is not initialized

      // initializing name
      name = "www.tutorialspoint.com/"
      println(this::name.isInitialized)
      // It will return true
   }
}

fun main() {
   var obj=Tutorial();
   obj.checkLateInit();
}

ผลลัพธ์

เมื่อคุณรันโค้ด มันจะสร้างผลลัพธ์ต่อไปนี้ -

false
true

ในกรณีที่สองตัวแปร ชื่อ ถูกเตรียมใช้งาน ดังนั้นจึงคืนค่าเป็น True