เฮ้พวก!

ในสื่อนี้ ฉันจะบอกคุณเกี่ยวกับ Kotlin — Null Savety เป็นหนึ่งในตัวละครพิเศษของ Kotlin ดังนั้นเรามาดูกันดีกว่า!

Null Savety

ในฐานะโปรแกรมเมอร์ โดยเฉพาะผู้ที่ใช้ภาษาโปรแกรม Java บ่อยครั้ง คุณคงคุ้นเคยกับ “NullPointerException (NPE)” หรือสิ่งที่มักเรียกกันว่า “The Billion Dollar Mistake” เป็นอย่างดี NPE มักกำหนดให้เราต้องตรวจสอบอยู่เสมอว่าวัตถุนั้นมีศักยภาพเป็นโมฆะหรือไม่

ใน Kotlin เราไม่จำเป็นต้องทำข้อตกลงกับมัน ใช่แล้ว ✌️

Kotlin มีฟีเจอร์ Null Safety เป็นหนึ่งในข้อดีของมัน Kotlin จะวาง Null Exception ในการรวบรวมและจัดการ NPE ปกติทั้งหมดโดยอัตโนมัติ Kotlin ยังสามารถแยกแยะระหว่างอ็อบเจ็กต์ที่อาจเป็นโมฆะหรืออาจไม่เป็นโมฆะเมื่อสร้างอ็อบเจ็กต์ได้ ดังนั้นจึงมั่นใจได้ว่า Kotlin จะปลอดภัยจาก NPE

เฮ้! ลองดู :

var a: String = "medium"
a = null // compilation error

ถ้าโค้ดแบบนั้นมันจะเกิดข้อผิดพลาด แต่ใน kotlin จะเป็นดังนี้:

var a: String? = "kotlin"
a = null

ด้วยโค้ดแบบนั้น ตัวแปร a สามารถเติม null. ได้

กำลังตรวจสอบค่าว่าง

หากเราต้องการใช้บาง object เราต้องตรวจสอบว่า object นั้นเป็น null หรือไม่ และมีหลายวิธีในการตรวจสอบ nullable ใน Kotlin :

สภาพการใช้งาน

การใช้ Condition if/elseเป็นวิธีดั้งเดิมที่สุดในการตรวจสอบ null savety และเป็นวิธีที่บ่อยที่สุดด้วย

if (a != null && a.length > 0) {
print("String of length ${a.length}")
} else {
print("Empty string")
}

โทรอย่างปลอดภัย

การโทรอย่างปลอดภัยโดยใช้เครื่องหมาย '?' หากคอมไพเลอร์เป็นโมฆะจะไม่ทำอะไรเลย

a?.length

โอเปอเรเตอร์เอลวิส

Elvis Operator เป็นหนึ่งในสถานการณ์ทั่วไปที่สุดเมื่อเรามีประเภท nullable จะใช้ค่าเมื่อค่านั้นไม่ใช่ null

val home: String?
if (user != null){
home = user.home
} else{
home = "Default name"
}

ในโค้ดด้านบน เราใช้เงื่อนไข if/else แต่เราสามารถทำให้มันง่ายขึ้นได้โดยใช้เครื่องหมาย '?'

val name: String = user.home ?: "default name"

ผู้ดำเนินการ

ไม่แนะนำวิธีนี้เนื่องจากจะบังคับให้วัตถุไม่เป็นค่าว่าง และจะส่งผลให้มี NPE หากค่าของวัตถุเป็นค่าว่าง มันใช้เครื่องหมายอัศเจรีย์สองตัว

val b = a!!.length

ตกลง! ตอนนี้ฉันจะพูดถึง Null Savety ใน Kotlin ฉันหวังว่าสื่อนี้จะมีประโยชน์สำหรับการใช้งาน และหากคุณมีเรื่องจะพูดคุยก็แสดงความคิดเห็นได้เลย

และอย่าลืมกดติดตามด้วยนะครับ XD

ขอให้มีความสุขในการเขียนโค้ด!