這篇主要講的是kotlin里面的空安全和區(qū)間的部分
1.kotlin的空安全
為啥子說kotlin是空安全的?和Java相比,kotlin的空安全可以帶來哪些便利之處?不啰嗦,直接上代碼:
總的有個比較的對吧,那就這樣:寫一個方法,返回年齡,類型String,并且調(diào)用
Java寫法:


看看再kotlin中會怎么樣:

在你寫代碼的時候,明確的和你說,這里不能是空的!想運行?門都沒有啊......那怎么樣才能通過呢?
①.明確的返回不為空的數(shù)據(jù)

這樣是沒問題的
②.明確的告訴編譯器,這里返回的是可空類型

這樣也是可以通過的
這里就是kotlin的空安全,在kotlin中,在代碼的編輯階段,編譯器就會幫你檢查對象為空的可能,這時候,要么你要明確的返回一個不為空的數(shù)據(jù)/對象,要么,你就要告訴編譯器我知道這里為空,你可以給我返回,我自己做處理.這是后你可能會疑問了,你加了問好之后,可以返回空了,那不就還是空不安全的嗎?那咱們再往后看:
方法你是寫好了,需要調(diào)用了,Java的方法不用看,一定是可以調(diào)用的,咱們看看當咱們加上?,讓方法可以返回空的時候,在你調(diào)用的地方會怎么樣:


Java寫法:

image.png
kotlin寫法:

emmmm....應該很一目了然了,kotlin的空安全可以為我們省去很多的 if(xxx == null) 的判斷,可以簡化代碼. 還有下面種情況,我定義個可空的常量,但是給他賦值不是空的,在我明確知道他不是空的情況下,kotlin里面還是會有空檢查機制,在你調(diào)用的時候讓你需要判斷:

這時候有什么處理辦法呢?還是兩種:

2.區(qū)間Rang
區(qū)間這個很簡單,和我們數(shù)學里面的開區(qū)間,閉區(qū)間相似,直接上代碼,解釋和注意事項都在代碼中
/**
* 區(qū)間
*
* */
val mRange : IntRange = 0..100 //表示0-100的閉區(qū)間 等價于[0,100]
val mRange2 : IntRange = 0 until 50 //表示0-100的半閉區(qū)間 等價于[0,50)等價于[0,49]
val mRange3 : IntRange = 10..1
//Range是ClosedRangede 子類
//Range里面包含的方法 1.isEmpty 2.contains
fun main(args: Array<String>) {
//1.mRange3是空的嗎
println(mRange3.isEmpty()) //true
//2.mRange區(qū)間里面包含50嗎
println(mRange.contains(50)) //true
//50在 mRange 區(qū)間里面嗎
println(50 in mRange) //true
//mRange2 包含50嗎
println(mRange2.contains(50)) //false
//遍歷
for (i in mRange2){
print("$i,")
}
}
附上運行的結(jié)果:

這篇就是這些了,如有不足,歡迎指出,覺得我會改,你就輸了....
