Kotlin 資料類

weixin_33890499發表於2018-08-24
功能
  • 自動宣告與建構函式入參同名的屬性欄位
  • 自動實現每個屬性欄位的get/set方法
  • 自動提供equals方法,比較兩個資料物件是否相等
  • 自動提供copy方法,允許完整複製某個資料物件
  • 提供toString方法
約束條件
  • 資料類必須有主建構函式,且至少一個輸入引數
  • 宣告與輸入引數同名的屬性,即輸入引數前面新增關鍵字val或者var
  • 資料類不能是基類也不能是子類,不能是抽象類,不能是內部類,不能是密封類
例項
data class User(
        var name: String,
        var age: String,
        var address: String
)
呼叫
 private var cCount = 0

 private fun getUser() {

        var user = User("測試", "11", "北京")
        var userCopy = user.copy()

        btn_class_data.setOnClickListener { v ->
            userCopy = when (cCount % 2) {
                0 -> user.copy(age = "11")
                else -> user.copy(age = "12")
            }
            cCount++

            var result = if (user.equals(userCopy)) "=" else "!="
            text_class_data.text = "結果$result \n"+ "第一是$user \n"+"第二是$userCopy"
        }
   }

相關文章