Kotlin学习(13):数据类

本文介绍了Kotlin中的数据类概念及用法,包括数据类的定义、复制功能、解构声明等特性。通过实例展示了如何利用数据类简化代码并提高程序的可读性和维护性。
1、数据类的概念

在Kotlin中,我们经常创建一些保存数据的类,我们称之为数据类,并标记为data

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

编译器自动从住构造函数中声明的所有属性导出一下属性:

  • equals()/hashCode()
  • toString()格式是”User(name=John, age=42)”
  • componentN()函数按声明顺序对应于所有属性
  • copy()函数

如果这些函数中的任何一个在类体中显式定义或继承其基类型,则不会生成该函数。

为了确保生成的代码的一致性和有意义的行为,数据类必须满足以下要求:

  • 主构造函数需要至少有一个参数
  • 主构造函数的所有参数需要标记为valvar
  • 数据类不能是抽象、开放、密封或者内部的

如果该类需要含有一个无参的构造函数,则所有的属性必须指定默认值。

data class User(val name: String = "", val age: Int = 0)
2、复制

在很多情况下,我们需要复制一个对象改变它的一些属性,但其余部分保持不变。copy()函数就是为此而生成。

val jack = User(name = "Jack", age = 3)
val olderJack = jack.copy(name = "oldJack", age = 1)
3、数据类和解构声明

为数据类生成的Component函数使它们可在解构声明中使用:

fun main(args: Array<String>) {
    val jane = User("Jane", 35)
    val (name, age) = jane
    println("$name,$age years of age")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值