kotlin定义了一种 专门用于保存数据 的类——数据类,关键字为data class
, 它有以下2个要求:
- 默认构造函数至少要有1个参数,每个参数必须是属性,即
val
或者var
。 - 数据类不能是
抽象类
、开放类
、密封类
、或者内部类
data class DataClassSimple(var name: String, var age: Int) { }
Pair 和 Triple
kotlin定义了两个特殊的数据类型: Pair
与Triple
,他们分别代表2参数类 与三参数类。
val pair = Pair<String, Int>("1", 1)
System.out.println("pair first=${pair.first} second= ${pair.second}")
copy
数据类提供了copy
函数,可以快速的完成值复制,并完成部分数值的替换
var foo = DataClassSimple("doulala", 18)
var foo1 = foo.copy(name = "lalala")
System.out.println("foo1.name = ${foo1.name}")
ComponentN
数据类提供了compoentN
参数,与构造函数
相反,主要用来对数据进行解构
val (name, age) = foo //数据类实例的解构
System.out.println("name first=${name} age= ${age}")