前言
本文主要介紹了關於Kotlin中?.與!!.的區別,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧
1、?.
//kotlin:a?.foo()//相當於java:if(a!=null){ a.foo();} 2、!!.
//kotlin:a!!.foo()//相當於java: if(a!=null){ a.foo();}else{ throw new KotlinNullPointException();}時間寶貴的同學可以不要看下面的了(` _ `)
3、再來說下"!!"
值得一提的是,當我們直接調用一個可空變量的某方法或某成員變量時:
直接調用,報錯提示
Android Studio會提示在一個可空變量上,只有"安全調用"(safe call (?.))和"不為空的斷言調用"(non-null assert call(!!.))是被允許的,可以得知"!!"相當於是斷言操作,即:
//(Kotlin)a!!.foo()//等於(Kotlin):a!!a.foo()//相當於(Java):assert a!=null;a.foo();//也就相當於(Java):if(a == null){ throw new NullPointException();}a.foo();進而有上面第2點結論。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。