简介
解构声明, 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) }
|