iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 16
0
Software Development

初探Kotlin系列 第 16

[Day 16] Data Classes

  • 分享至 

  • twitterImage
  •  

我們常建立一種類別只為了存取數據 在Kotlin中這樣的類別稱作Data Classes

data class User(val name: String, val age: Int)

編譯器會自動從primary constructor中的屬性導出以下的函數

  • equals()/hashCode()
  • toString()
  • componentN()
  • copy()

Data Classes須滿足以下需求:

  • primary constructor至少有一個參數
  • primary constructor所有參數需要標記為var或val
  • 不能是abstract, open, sealed 或 inner

Copying

很多情況下 可以需要對一些屬性作修改但其他不便 就使用copy

val jack = User(name = "Jack", age = 1)
val newerJack = jack.copy(age = 2)
// newerJack = User(name = "Jack", age = 2)

Data Classes and Destructuring Declarations

val jane = User("Jane", 35) 
val (name, age) = jane
println("$name, $age years of age") // prints "Jane, 35 years of age"

上一篇
[Day 15] Extensions-1
下一篇
[Day 17] Sealed Classes
系列文
初探Kotlin19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言