Kotlin非空類型如何與其他類型轉(zhuǎn)換

小樊
81
2024-11-03 04:41:42

在 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。

0