淺談kotlin在安卓上的使用體驗,以及java和kotlin不同之處幫助大家快速入坑

不知不覺用kt開發安卓已經兩年多了,在此分享一下自己的經驗。個人覺得使用kt開發安卓還是比使用java更加的方便推薦嘗試一下。

下面爲是我認爲kotlin在安卓開發的優勢

  1. 減少大量的findviewbyid()  (提高編碼效率)
  2. 更精簡的lambda表達式 (使代碼看起來更簡潔)
  3. 強大的when語句(可使用變量作爲匹配項),可帶返回值
  4. 空安全機制  (減少各種空指針異常,減少繁瑣的空判斷)
  5. 智能轉換機制 (提高編碼效率)
  6. 豐富的擴展函數  (提高編碼效率)
  7. Dataclass  
  8. 內聯函數 (提高性能)

 二、java與kotlin不同之處

 

1.Kotlin 聲明的變量 使用 統一使用 var     val(相當於java fanal) 聲明只讀常量,方式爲 var/ val 變量名:變量類型[?](是否可空)在kotlin中 會給屬性默認生成get set 在使用kt對象.屬性時實際會調用kotlin的get和set方法(注意:當變量聲明爲private時 生成的get set方法也爲private所以外部無法調用)

 

2.kotlin 無基本數據類型,一切皆對象 也沒有static如需使用java中一樣的靜態類 則使用 object,使用匿名內部類時也需要使用object 關鍵字聲明

 

3.kolin 方法 使用fun 關鍵字聲明 格式爲 fun funName(var param):返回值。 構造方法使用constructor 聲明。Kotlin允許給參數默認值如何

 

4.對象使用class聲明 並默認爲不可繼承如何需要繼承則需要open關鍵字作爲修飾

 data class 爲對應的爲java的bean類 自動從寫了toString. Equals, copy等方法

 

5.擴展。爲java中沒有的特性可分爲擴展函數和擴展屬性。如對textview擴展一個方法判斷textview的文本是否爲空:

fun TextView.isEmpty()  : Boolean{

     return TextUtils.isEmpty(this.text.toString())

}

對textView擴展屬性:

var TextView.mvalue:String

get() = this.text.toString()

     set(value){

          this.text=value

     }

 

6 when與switch  在switch中case 語句只能使用常量。這導致在lib中不能使用控件id作爲分支。when 可以使用變量,表達式,區間等作爲分支,並且when語句支持返回值(kt的if語句也支持)

 

7.operator重載運算操作符。如給opint類+=操作符

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