Kotlin中 !!. 跟 ?. 的區別跟用法【轉】


在Kotlin中!!跟?都是用於判斷空參數異常的

?.意思是這個參數可以為空,並且程序繼續運行下去

!!.的意思是這個參數如果為空,就拋出異常

下面給大家舉個簡單的例子,在JAVA中判斷一個參數非空是這樣寫的:

NullClass nullClass = null;

if (nullClass!=null) {
ullClass.nullFun();
}
將這段代碼轉換成Kotlin之后呢

val nullClass: NullClass? = null

nullClass?.nullFun()
短短兩行就表述完了

在一開始的時候我們聲明了一個類,並且在類名后面加了一個? 意思就是這個類可以為空,然后在下面用到這個類里面的一個方法時又加了一個問號,意思就是,當程序運行到這一行時,如果這個參數為空,就跳過這一行,程序繼續執行下去

所以?.的用法就是相當於Java里的if()判斷null

if (nullClass!=null) {//如果判斷為空
//跳過這一行,程序繼續執行
nullClass.nullFun();
}
一般?.的用法是:

在新建一個參數的類名后面加一個? 表示這個參數可以為空.

還有就是在用到這個參數的時候后面加? 表示空參數就跳過並且程序繼續執行

而!!只用於用到這個參數的時候在后面加!!,表示空參數就拋出異常

還是相同的例子:

val nullClass: NullClass?=null

nullClass!!.nullFun()
換成Java代碼就是

NullClass nullClass = null;

if (nullClass!=null) {
nullClass.nullFun();
}else {
throw new NullPointerException();
}
這里大家應該都能看明白了,在第二行參數后面加個!!,意思就是當程序執行到這行,判斷這個參數如果是空參數,就拋出異常

所以!!.的用法就是相當於Java里的if()else()判斷null

if (nullClass!=null) {//如果判斷為空
nullClass.nullFun();
}else {//拋出空參數異常
throw new NullPointerException();
}
————————————————
原文鏈接:https://blog.csdn.net/wuditwj/article/details/84302715


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM