Kotlin淺析null操作方法
1.在java中由于null引起的空指針異常,是一個運行時異常。
在kotlin中為了避免這樣的問題,會在編譯期提示出來,而不是在運行期才報錯。
1)比如我們把null賦值給一個已經(jīng)被賦值的變量或者定義一個返回null的函數(shù),編譯器就會報錯提示:Null can not be a value of a non-null type String
var hello = "hello world"
hello = nullfun getString(): String{
return null
}2)如何把null賦值給一個變量,或者函數(shù),帶上一個?這樣編譯器就不會報錯了。
var hello: String? = "hello world"
hello = nullfun getString(): String? {
return null
}2.安全調(diào)用操作符:問號?
為了避免空指針,kotlin不讓我們給非空變量賦值null,但null在Kotlin中依存在,這種情況下,我們可以使用安全操作符 ?來避免發(fā)生空指針異常。
當編譯器遇到安全調(diào)用操作符時,會去檢查,如果是null,就會跳過函數(shù)的執(zhí)行,而不會拋出異常。
比如下面這幾行代碼,在java中必然會拋出異常,但是在kotlin中會跳過count()函數(shù)執(zhí)行,并返回null,不會拋出異常。
fun main() {
val str = getString()
val count = str?.count()
println(count)
}
fun getString(): String? {
return null
}3.非空斷言操作符:!!雙感嘆號
!!又稱為感嘆號操作符,當變量為null時,會拋出空指針異常,NullPointerException
fun main() {
val str = getString()
val count = str!!.count()
println(count)
}
fun getString(): String? {
return null
}4.在Kotlin中也可以用if來判斷null的情況
fun main() {
val str = getString()
if (str == null) {
println("null")
} else {
val count = str?.count()
println(count)
}
}
fun getString(): String? {
return null
}5.空合并操作符?:
?: 如何符號左邊的值為null,則使用右邊的值。
下面這行代碼打印的結(jié)果就是 hello
fun main() {
val str = getString() ?: "hello"
println(str)
}
fun getString(): String? {
return null
}6.Kotlin中捕獲異常 try catch
try {
val str = getString()
val count = str!!.count()
println(count)
} catch (e: Exception) {
e.printStackTrace()
}到此這篇關于Kotlin淺析null操作方法的文章就介紹到這了,更多相關Kotlin null內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺談Android手機聯(lián)系人開發(fā)之增刪查改功能
這篇文章主要介紹了Android手機聯(lián)系人開發(fā)之增刪查改功能,需要的朋友可以參考下2017-05-05
超簡單實現(xiàn)Android自定義Toast示例(附源碼)
本篇文章主要介紹了超簡單實現(xiàn)Android自定義Toast示例(附源碼),具有一定的參考價值,有興趣的可以了解一下。2017-02-02
Android 沉浸式改變小米魅族狀態(tài)欄顏色的實例代碼
這篇文章主要介紹了Android 沉浸式改變小米魅族狀態(tài)欄顏色的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
android全局監(jiān)控click事件的四種方式(小結(jié))
本篇文章主要介紹了android全局監(jiān)控click事件的四種方式(小結(jié)),詳細介紹如何在全局上去監(jiān)聽 click 點擊事件,并做些通用處理或是攔截,有興趣的可以了解一下2017-08-08

