0%

Kotlin基础(1)——解构声明

简介

解构声明, Destructuring Declarations, 是一种将对象解构的语法, 可以一次创建多个变量

1
val (name, age) = person

可以通过结构声明快速创建变量, 如 name & age, 可以独立使用它们

1
2
println(name)
println(age)

解构声明会被编译成以下代码

1
2
val name = person.component1()
val age = person.component2()

componentN() 为获取对象的第 N 个属性

示例

函数返回多个值

1
2
3
4
5
6
7
8
9
data class Result(val result: Int, val status: Status)
fun function(...): Result {
// computations

return Result(result, status)
}

// Now, to use this function:
val (result, status) = function(...)

Map 的返回

1
2
3
4
5
val map = hashMapOf(1 to "one", 2 to "two")

for ((key, value) in map) {
print("$key to $value")
}

特殊用法

忽略未使用变量

1
val (_, status) = getResult()

在 Lambda 表达式中的使用

1
2
3
4
val map = mapOf(1 to "one", 2 to "two")

map.mapValues { entry -> println(entry.value) }
map.mapValues { (_, value) -> println(value) }