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