解构声明
val (a,b) = pair、componentN、data class 自动解构
解构声明
解构声明把对象拆成多个变量——data class 自动支持,其他类需实现 componentN。
学完本章你将: 掌握 val (a,b) = 解构、componentN、实用场景。
基本用法
kotlin
data class Point(val x: Int, val y: Int)
val point = Point(10, 20)
val (x, y) = point // x=10, y=20
println(x) // 10
println(y) // 20
遍历 Map
kotlin
val map = mapOf("a" to 1, "b" to 2)
for ((key, value) in map) {
println("$key -> $value")
}
遍历带索引
kotlin
val list = listOf("A", "B", "C")
for ((index, item) in list.withIndex()) {
println("$index: $item")
}
Lambda 解构
kotlin
val pairs = listOf("a" to 1, "b" to 2)
pairs.forEach { (key, value) ->
println("$key: $value")
}
自定义解构
kotlin
class Person(val name: String, val age: Int) {
operator fun component1() = name
operator fun component2() = age
}
val (name, age) = Person("小明", 25)