android kotlin詳解(1)

對於,android 開發人員而言,kotlin的出現給我們帶來了福利。

(1)可以減少android開發的代碼量

(2)kotlin語言也可應用於js中

(3)後臺肯定能使用kotlin進行開發

但,我的這邊博客以及後續的kotlin博客肯定不會講什麼基礎的,只是講一些比較細節的東西,這樣你們看kotlin官方文檔就很簡單了。

那,下面我們先來看看,kotlin的 空安全
在kotlin中,空安全,我們肯定先想到的是 “?”,我們依次來看下面這些例子:

var name: String = "lihuan"
name= null // 編譯報錯:null 不能作爲一個非空類型的值

var nickName: String? = "jimTrency"
nickName = null // 編譯成功

從而,我們可以知道,想要一個變量爲空類型,在對應的位置加個 “?”即可。

     var name: String ?= "lihuan"
     var l = name.length  //編譯報錯

這是爲什麼呢?因爲你的name 可以爲空,所以name.length 可能會報空指針異常,當然在kotlin中肯定是不允許的,這麼解決呢?看下面代碼

     //編譯成功,若name爲空,l=null;否則l=name.length
      var l = name?.length  

下面我們再來看看,這一句代碼什麼意思:

    var name: String ?= "lihuan"
    val l = name?.length ?: -1

意思是:若name不爲空,l = name.length,否則:l = -1
即:java寫法爲:

 if(name!=null){
    l = name.length;
 }else{
     l = -1;
 }

ps: ” ?: ” 爲Elvis操作符,如果 ?: 左邊表達式非空,elvis操作符就會返回左邊的結果,否則返回右邊的結果

接着,我們再來看看一種寫法:

var name: String ?= "lihuan"
     var l = name!!.length  //編譯通過

“ !! ”,這是你告訴編譯器,name肯定不爲空。若爲空呢,這樣肯定會報異常了。

最後,我們來看看 as 的用法:

在kotlin中,as 實現 強制轉換,例如:

  var user=User()
  var baseUser: BaseUser? = user as? BaseUser

當使用 as 轉型的時候,可能會經常出現 ClassCastException。 所以,現在可以使as?安全轉型,當轉型不成功的時候,它會返回 null。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章