หากฉันมีค่าว่างBoolean bฉันสามารถทำการเปรียบเทียบต่อไปนี้ใน Java:
Boolean b = ...;
if (b != null && b) {
   /* Do something */
} else {
   /* Do something else */
}
ใน Kotlin ฉันสามารถบรรลุสิ่งเดียวกันได้โดยใช้ตัว!!ดำเนินการ:
val b: Boolean? = ...
if (b != null && b!!) {
   /* Do something */
} else {
   /* Do something else */
}
อย่างไรก็ตามการใช้งานของฉัน!!รู้สึกเป็นร่างเล็กน้อยสำหรับฉันหลีกเลี่ยงระบบความปลอดภัยว่าง
มีแนวทางที่หรูหรากว่านี้หรือไม่?
แก้ไขดูเหมือนว่าฉันจะซับซ้อนไปหน่อย สำหรับตัวแปรท้องถิ่นดังที่Bantharแสดงให้เห็นว่ามันใช้งานได้ อย่างไรก็ตามบูลีนของฉันbเป็น "คุณสมบัติที่มีฟิลด์สำรอง" (ฉันยังไม่เร่งความเร็วเท่าไหร่) นี่คือผลลัพธ์:
bอาจเป็นnullและหนึ่งในคุณสมบัติของ Kotlin คือNull Safetyซึ่งทำให้เกิดข้อผิดพลาดในการรวบรวมเมื่อพยายามประเมินการอ้างอิงที่เป็นโมฆะ ดังนั้นการใช้ธรรมดาbจะทำให้เกิดข้อผิดพลาดในการคอมไพล์ :)
                b != nilจับก่อนที่จะตรวจสอบด้านขวา?
                val r = b?doSomething() ?: doSomethingElse()จะใช้ได้นะ
                
!!bและไม่เพียงb? (ฉันไม่ค่อยคุ้นเคยกับ kotlin แค่อยากรู้อยากเห็น)