
null安全.jpg
null
- 在Java中我們常見的空指針異常NullPointerException,帶給我們很多麻煩。Kotlin作為強大的語言,勢必會基于以往的語言設計經驗對其進行改良。Kotlin更多地把運行時可能會出現的null問題,以編譯時錯誤的方式,
提前在編譯期強迫我們重視起來,而不是等到運行時報錯,防范于未然,提高了我們程序的健壯性。
可空性
- 對于null值問題,Kotlin反其道而行之,
除非另有規(guī)定,變量不可為null值,這樣一來,運行時崩潰從根源上得到解決。
fun main(){
val str = "butterfly"
str = null
println(str)
}
Kotlin的null類型
- 為了避免NullPointerException,Kotlin的做法是不讓我們給非空類型變量賦null值,但null在Kotlin中依然存在。
fun main(){
var str:String? = readLine()
str = null
printlin("input:$str")
}
null安全
- Kotlin區(qū)分可空類型和非可空類型,所以你要一個控股類型變量運行,而它又可能不存在,對于這種潛在的危險,編譯器時刻警惕著。為了應對這種風險,Kotlin不允許你在可空類型值上調用函數,除非你
主動接手安全管理。
fun main(){
val str:String = readLIne().capitalize()
println(str)
}