【Kotlin】與一個可以為空的對象交互式很簡單

一、如何調(diào)用?

在對象后面使用"?"符號。

當(dāng)一個對象添加了"?"符號,只會在這個對象存在的時候被調(diào)用,否則將會忽略它,安全運行程序。

舉例:

val context : Context? = null
val res = context?.getResources() // 不會崩潰,但是 res 將為空.

二、調(diào)戲

我們知道上面的代碼不會使程序崩潰,那么我們可以這樣調(diào)戲Kotlin,我們繼續(xù)使用可以為空的對象,代碼最終會是這樣:

val context : Context? = null
val res = context?.getResources() // 不會崩,但為空
val appName = res?.getString(R.string.app_name) // 不會崩,但為空
val shortName = appName?.substring(0, 2) // 不會崩,但為空

我們發(fā)現(xiàn),這樣下去是很可怕的,因為我們在實際項目中,是不會讓對象為空的。那么我們?nèi)绾闻袛喾强盏哪??如果只是檢測context 不為空,可以省略掉"?"符號:

//第一種 java方式
val context : Context? = null
if (context != null) {
    val res = context.getResources()    // 不需要 '?'
    val appName = res.getString(R.string.app_name)
    val shortName = appName.substring(0, 2)
}
//第二種 kotlin方式
val context : Context? = null
context?.let {
    val res = context.getResources()    // 不需要'?'
    val appName = res.getString(R.string.app_name)
    val shortName = appName.substring(0, 2)
}

三、總結(jié)

使用kotlin的非空判斷方式可以靈活的替換掉Java的非空判斷,省略掉"?"符號。

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

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