当前位置:嗨网首页>书籍在线阅读

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")     //优先匹配第一个参数
}