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

ตัวดำเนินการ Kotlin double-bang (!!) คืออะไร?


ในคอตลิน "!!" เป็นตัวดำเนินการที่เรียกว่าตัวดำเนินการสองครั้ง โอเปอเรเตอร์นี้เรียกอีกอย่างว่า "ตัวดำเนินการยืนยันที่ไม่ใช่ค่าว่าง" โอเปอเรเตอร์นี้ใช้เพื่อแปลงค่าใดๆ ให้เป็นค่าประเภทที่ไม่ใช่ NULL และจะส่งข้อยกเว้นหากค่าที่สอดคล้องกันเป็น NULL ในตัวอย่างต่อไปนี้ เราจะมาดูวิธีการใช้ตัวดำเนินการ double-bang นี้

ตัวอย่างที่ 1

ในตัวอย่างนี้ เราจะพิจารณาตัวแปร "name" และในฐานะโปรแกรมเมอร์ เราต้องการส่งข้อยกเว้นพอยน์เตอร์ NULL ทุกครั้งที่มีค่า "name" เป็นโมฆะ ตอนนี้ รันโค้ดต่อไปนี้

fun main(args: Array<String>) {
   var name: String?
   name = null
   println(name)
}

ผลลัพธ์

มันจะสร้างผลลัพธ์ต่อไปนี้ -

null

รหัสนี้ไม่ได้แก้ไขคำสั่งข้อกำหนดของเราจริงๆ เราต้องการส่งข้อยกเว้นตัวชี้ NULL เมื่อใดก็ตามที่มีค่า "name" เป็นโมฆะ มาแก้ไขตัวอย่างก่อนหน้านี้ของเราโดยใช้ตัวดำเนินการ double-bang (!!)

ตัวอย่างที่ 2

fun main(args: Array<String>) {
   var name: String?
   name = null

   // Nothing has been used to resolve overload ambiguity exception
   println(name!! is Nothing?)
}

ผลลัพธ์

มันจะส่งข้อยกเว้น NULL Pointer Exception ที่รันไทม์ -

Exception in thread "main" java.lang.NullPointerException
at MainKt.main(main.kt:6)