ตัวแปรใด ๆ ที่เริ่มต้นหลังจากการประกาศนั้นเรียกว่า "ตัวแปร 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