Kotlin学习_设置默认值

当我们调用一个为空的属性的时候,需要进行空的判断,那么如何避免这样?如何设置kotlin里面的默认值呢,比如函数参数的默认值,数据类的属性的默认值?

首先有这样的代码:

1
2
3
4
5
6
data class User(val name: String?, val age: Int?)

fun main(args: Array<String>) {
var user = User(null, 23)
println(user.name?.let { user.name } ?: "jowan")
}

这样子写是不是很麻烦,那么这里我们可以将其写成一个方法,这样子调用的话就很方便了:

1
2
3
4
5
6
7
8
9
10
data class User(val name: String?, val age: Int?)

fun <T> T?.getDefault(default: T): T = this?.let { this } ?: default

fun main(args: Array<String>) {
val (name, _) = User(null, 23)
println(name.getDefault("jowan"))
val (_, age2) = User("jowan", null)
println(age2.getDefault(23))
}