Kotlin数据类与密封类

数据类

Kotlin可以创建一个只包含数据的类,关键字为data

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

编译器会主动的从主构造函数中根据所有声明的属性获取以下函数

equals() / hashCode()
toString() 格式如 "User(name=John, age=42)"
componentN() functions 对应于属性,按声明顺序排列
copy() 函数

复制

复制使用 copy() 函数,我们可以使用该函数复制对象并修改部分属性, 对于上文的 User 类,其实现会类似下面这样:

fun copy(name: String = this.name, age: Int = this.age) = User(name, age)

实例

使用 copy 类复制 User 数据类,并修改 age 属性:

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


fun main(args: Array) {
    val jack = User(name = "Jack", age = 1)
    val olderJack = jack.copy(age = 2)
    println(jack)
    println(olderJack)

}

输出结果:

User(name=Jack, age=1)
User(name=Jack, age=2)

 

 

 

你可能感兴趣的:(Kotlin学习之路)