ขอบคุณข้อมูลจาก : blog.mindorks.com , youtube
หลายครั้งที่เราสร้างตัวแปรขึ้นมาแต่ไม่ต้องการ initialize ในเวลานั้น แน่นอนว่าเราจะต้องแก้ปัญหาด้วย Null Safety (กำหนดให้ตัวแปรเป็นค่า null ได้ ด้วยการเพิ่มเครื่องหมาย ?)
private var country: String? = null
แต่จะทำไงถ้าเราไม่ต้องการใช้ nullable นั่นเป็นที่มาของ keyword Lateinit นั่นเอง ซึ่งย่อมาจาก late initialization
lateinit ย่อมาจาก Late initialization
lateinit ต้องใช้ร่วมกับ var และต้องแน่ใจว่าก่อนเรียกใช้ตัวแปรที่มี keyword นี้ ต้องมีการ initialize แล้ว ไม่งั้นจะเกิด error ถ้าไม่แน่ใจก็ใช้ isInitialized เพื่อตรวจสอบก่อน เช่น
fun main() {
val personal = Personal()
personal.setValue("Ohm")
println(personal.getValue())
}
class Personal {
lateinit var myName: String
fun setValue(name: String) {
myName = name
}
fun getValue() = if (::myName.isInitialized) myName else "Not initialized"
}
ผลลัพธ์ที่ได้คือ Not initialized
command line ตรวจสอบ spec ใน Windows OS
วิธีผูก วินิจฉัย (Diagnosis) กับ วัคซีน (Vaccine)
ETL ใน Data Engineering คืออะไร?
แก้ปัญหา export ภาษาไทยเพี้ยน ของ MySQL ใน phpMyAdmin
เชื่อมตารางตัวเองใน MySQL ด้วย SELF JOIN
เคล็ดลับเพิ่มประสิทธิภาพการใช้ Google Docs
เทคนิคการใช้ ChatGPT Plus ให้คุ้มค่า คุ้มราคา
เชื่อมหลายฐานข้อมูล MySQL ใน Codeigniter4