0Pricing
Kotlin Academy · Lektion

Destrukturierende Deklarationen mit componentN

Zerlegen Sie Instanzen von Data Classes mithilfe von Component-Funktionen in Variablen.

Destrukturierende Deklarationen mit componentN ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Grundlagen der Destrukturierung

Eine Destrukturierungsdeklaration zerlegt ein Objekt in einem Schritt in mehrere Variablen. Dazu verwendet sie die Operatorfunktionen componentN().

Eine Data Class destrukturieren

Data Classes generieren automatisch component1, component2, ... sodass Sie val (a, b) = obj schreiben können.

data class Point(val x: Int, val y: Int)
fun main() {
    val p = Point(3, 5)
    val (x, y) = p
    println("x=$x, y=$y")
}

Ein Pair destrukturieren

Die Standardbibliothekstypen Pair und Triple unterstützen Destrukturierung direkt.

fun main() {
    val pair = "Ada" to 35
    val (name, age) = pair
    println("$name is $age")
}

Ein Triple destrukturieren

Triple enthält drei Werte, die Sie in drei Variablen destrukturieren können.

fun main() {
    val rgb = Triple(255, 128, 0)
    val (r, g, b) = rgb
    println("R=$r G=$g B=$b")
}

Destrukturierung bei der Map-Iteration

Map-Einträge haben component1 (Schlüssel) und component2 (Wert). Destrukturieren Sie sie im Kopf einer for-Schleife.

fun main() {
    val ages = mapOf("Alice" to 30, "Bob" to 25)
    for ((name, age) in ages) {
        println("$name -> $age")
    }
}

Destrukturierung in Lambdas

Lambdas, die Paare akzeptieren, können ihre Parameter direkt destrukturieren.

fun main() {
    val pairs = listOf("a" to 1, "b" to 2, "c" to 3)
    pairs.forEach { (letter, num) -> println("$letter=$num") }
}

Werte mit _ ignorieren

Verwenden Sie den Unterstrich _, um nicht benötigte Werte zu überspringen.

data class User(val name: String, val email: String, val age: Int)
fun main() {
    val u = User("Ada", "ada@example.com", 35)
    val (name, _, age) = u
    println("$name ($age)")
}

Mehrere Werte zurückgeben

Eine Funktion kann ein Pair oder eine benutzerdefinierte Data Class zurückgeben; der Aufrufer destrukturiert das Ergebnis.

data class Result(val sum: Int, val product: Int)
fun computeBoth(a: Int, b: Int) = Result(a + b, a * b)
fun main() {
    val (s, p) = computeBoth(4, 5)
    println("sum=$s product=$p")
}

Benutzerdefiniertes componentN

Jede Klasse kann Destrukturierung unterstützen, indem sie operator fun componentN() deklariert.

class RGB(val r: Int, val g: Int, val b: Int) {
    operator fun component1() = r
    operator fun component2() = g
    operator fun component3() = b
}
fun main() {
    val (red, green, blue) = RGB(255, 100, 0)
    println("$red $green $blue")
}

Destrukturierung mit withIndex()

Bei der Iteration mit withIndex() werden Index und Wert als Pair zusammengeführt.

fun main() {
    val fruits = listOf("apple", "banana", "cherry")
    for ((idx, fruit) in fruits.withIndex()) {
        println("$idx: $fruit")
    }
}

Einschränkung: positionsbasiert

Destrukturierung erfolgt nach Position, nicht nach Namen. Wenn Sie die Felder einer Data Class neu anordnen, ändert sich die Bedeutung an den Aufrufstellen unbemerkt.

data class Point(val x: Int, val y: Int)
fun main() {
    val p = Point(10, 20)
    val (a, b) = p // a=x, b=y
    // Add a property in the middle and old destructuring shifts!
    println("$a $b")
}

Kurze Überprüfung

Welche Operatorfunktion ermöglicht die Destrukturierung der i-ten Eigenschaft?

Zusammenfassung

Destrukturierung verwendet die Operatorfunktionen componentN(). Data Classes, Pair, Triple und Map-Einträge unterstützen sie direkt. Verwenden Sie _, um Werte zu überspringen, und beachten Sie: Destrukturierung erfolgt nach Position, nicht nach Namen.

Häufig gestellte Fragen

Ist die Lektion „Destrukturierende Deklarationen mit componentN“ kostenlos?

Ja — der vollständige Text von „Destrukturierende Deklarationen mit componentN“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Destrukturierende Deklarationen mit componentN“?

Zerlegen Sie Instanzen von Data Classes mithilfe von Component-Funktionen in Variablen. Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Destrukturierende Deklarationen mit componentN“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlagen von Data Classes: automatisch generierte Methoden
  2. Kopieren mit copy() und teilweise Überschreibungen
  3. Destrukturierende Deklarationen mit componentN
  4. Data Classes in Collections und als Map-Schlüssel
← Zurück zu Kotlin Academy