在 Kotlin 中,非空類型(Non-null types)是指那些不能為 null 的類型。為了將非空類型轉(zhuǎn)換為其他類型,你需要使用安全調(diào)用操作符(safe call operator)?.
。這個(gè)操作符允許你在一個(gè)可空對(duì)象上調(diào)用非空成員,如果對(duì)象為 null,則返回 null。
以下是一個(gè)示例,展示了如何將非空類型轉(zhuǎn)換為其他類型:
fun main() {
val nonNullString: String = "Hello, World!"
// 將非空字符串轉(zhuǎn)換為整數(shù)
val intValue: Int? = nonNullString.toIntOrNull()
// 檢查轉(zhuǎn)換是否成功
if (intValue != null) {
println("轉(zhuǎn)換成功,整數(shù)值為:$intValue")
} else {
println("轉(zhuǎn)換失敗,字符串不能轉(zhuǎn)換為整數(shù)")
}
}
在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)非空字符串 nonNullString
。然后,我們使用 toIntOrNull()
擴(kuò)展函數(shù)將其轉(zhuǎn)換為整數(shù)。如果轉(zhuǎn)換成功,intValue
將是一個(gè)非空整數(shù),否則它將為 null。最后,我們檢查 intValue
是否為 null,并相應(yīng)地輸出結(jié)果。
需要注意的是,如果你確定非空類型永遠(yuǎn)不會(huì)為 null,你可以直接使用非空斷言操作符(non-null assertion operator)!!
。這將告訴編譯器你確定該值不為 null,如果值為 null,將拋出 NullPointerException
。例如:
fun main() {
val nonNullString: String = "Hello, World!"
// 使用非空斷言操作符將字符串轉(zhuǎn)換為整數(shù)
val intValue = nonNullString.toInt()
println("整數(shù)值為:$intValue")
}
在這個(gè)示例中,我們使用 toInt()
函數(shù)將 nonNullString
轉(zhuǎn)換為整數(shù),并使用非空斷言操作符 !!
告訴編譯器我們確定該值不為 null。如果 nonNullString
為 null,程序?qū)伋?NullPointerException
。