Kotlin中的問(wèn)號(hào)(?)和雙感嘆號(hào)(!!)的區(qū)別

Kotlin中的問(wèn)號(hào)(?)和雙感嘆號(hào)(!!)主要用于處理空值,它們?cè)谔幚砜罩禃r(shí)的行為截然不同。

問(wèn)號(hào)(?)

空安全特性:在Kotlin中,問(wèn)號(hào)用于表示一個(gè)變量可以為null。當(dāng)變量為null時(shí),程序不會(huì)拋出空指針異常,而是繼續(xù)執(zhí)行后續(xù)的代碼。這種機(jī)制被稱為空安全(Null Safety)。

使用場(chǎng)景
val list: List<String>? = null

println(list?.size) // 不會(huì)拋出異常,輸出null

雙感嘆號(hào)(!!)

強(qiáng)制非空:雙感嘆號(hào)用于表示一個(gè)變量必須非null。如果變量為null,程序會(huì)拋出?KotlinNullPointerException?異常。這種用法類(lèi)似于Java的空指針處理方式。

使用場(chǎng)景
val list: List<String> = null

println(list!!.size) // 如果list為null,會(huì)拋出KotlinNullPointerException

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容