Kotlin官方文档KotlinKotlin开发知识

Kotlin介绍系列(三)高级用法之DataClass

2017-11-05  本文已影响148人  Phoobobo

应用场景

经常会需要创建一些类除了保存数据不干其他事情,比如我们解析网络请求下来的数据。Kotlin就提供了一个非常方便的class—— data class

长什么样儿?

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

我们知道在Kotlin中,声明类的同时可以方便的直接声明构造方法等参数,鉴于data class只是存放数据,那么只一个构造方法足矣,所以连类的body也就不需要了。是不是很清爽?

data class为我们做了什么

编译器会根据我们在构造函数里声明的属性自动导出下列成员:

规则

拷贝

经常会遇到我们只需要替换一个对象的个别属性,而其他属性保留的情况。这就是data class中生成的copy函数的作用了。
本文已开始的例子类,它的生成的默认copy函数是下面这样的:
fun copy(name: String = this.name, age: Int = this.age) = User(name, age)
这就运训我们这样写:

val jack = User(name = "Jack", age = 1)
val olderJack = jack.copy(age = 2)

data class的结构化声明

data class的生成的component方法给我们的结构化声明及使用提供了可能

val jane = User("Jane", 35)
val (name, age) = jane
println("$name, $age years of age") // prints "Jane, 35 years of age"

Kotlin介绍系列(三)高级用法之object
Kotlin介绍系列(三)高级用法之Delegation

上一篇下一篇

猜你喜欢

热点阅读