Z
ZHANK
实用技巧

解构声明

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)