02-对象复制
7.1.1 对象复制
使用copy()函数,可以很方便地复制对象并修改对象的部分属性。对于上面的User类,使用copy函数复制User数据类并修改它的age属性。
data class User(val name: String, val age: Int)
fun main(args: Array<String>) {
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)
如果构造参数中的多个参数类型一致,则使用copy函数时会按定义的优先顺序匹配。代码如下。
data class User(val name: String, val age: Int,val sex : String)
fun main(args: Array<String>) {
var userC = User("jack", 20, "male")
var userD = userC.copy("tom") //优先匹配第一个参数
}