// ? null許容 (Nullable)
var a: String = "abc" // Regular initialization means non-null by default
a = null // compilation error

var b: String? = "abc" // can be set to null
b = null // ok


// ?. 安全呼び出し (Safe Call) 
val a = "Kotlin"
val b: String? = null
println(b?.length)
println(a?.length)	// 不必要な安全呼び出し


// !! Not-Null Assertion Operator
// Nullableな変数を強制的にNon-Nullに変換。もし変数がnullだった場合は、例外が発生するので注意
// NPE-lovers の為の演算子? Null の時は、例外を発生させたいと言う強い意志を持って使う
var a: Int? = 1
a = null
val b = a!!.toString()
// java.lang.NullPointerException


// ?: エルビス演算子(Elvis Operator)
var a: String? = "Hello"
a = null
val b: String = a ?: "1234567890"
println(b?.length)	// print 10

 

© 2024 Falco Tech Blog Suffusion theme by Sayontan Sinha