在 Kotlin 中,可空類型(Nullable Types)允許你表示一個(gè)變量可能為 null。這在處理可能未初始化的變量或從外部來源接收的數(shù)據(jù)時(shí)非常有用。要使用可空類型,你需要在變量類型后面加上 “?” 符號(hào)。
以下是關(guān)于如何在 Kotlin 中使用可空類型的幾個(gè)示例:
var nullableString: String? = null
在這個(gè)例子中,nullableString
是一個(gè)可空的字符串變量,它可以存儲(chǔ)一個(gè)字符串值或者 null。
當(dāng)你在可空類型上調(diào)用方法或訪問屬性時(shí),為了避免空指針異常,你可以使用安全調(diào)用操作符(?.)。這個(gè)操作符會(huì)在左邊的表達(dá)式為 null 時(shí)停止計(jì)算,并返回 null。
val length = nullableString?.length
在這個(gè)例子中,如果 nullableString
為 null,length
將會(huì)被賦值為 null,而不是拋出異常。
有時(shí)候,你可能確定一個(gè)可空變量實(shí)際上不會(huì)是 null。在這種情況下,你可以使用非空斷言操作符(!)來告訴編譯器這個(gè)變量不會(huì)是 null。需要注意的是,如果變量實(shí)際上是 null,使用非空斷言操作符會(huì)導(dǎo)致空指針異常。
val length = nullableString?.length ?: 0
在這個(gè)例子中,如果 nullableString
為 null,length
將會(huì)被賦值為 0。
let
函數(shù)處理可空類型:let
函數(shù)允許你在可空類型變量不為 null 時(shí)執(zhí)行一段代碼。如果變量為 null,則不執(zhí)行代碼塊。
nullableString?.let {
println("The string is not null: $it")
} ?: run {
println("The string is null")
}
在這個(gè)例子中,如果 nullableString
不為 null,將會(huì)打印 "The string is not null: " 和字符串的值。如果 nullableString
為 null,將會(huì)打印 “The string is null”。