Tupel destrukturieren
Holen Sie Werte wieder heraus.
Tupel destrukturieren ist eine kostenlose Scala for Backend Engineering & Functional Programming-Lektion auf CoddyKit. Dies ist Lektion 2 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 Scala for Backend Engineering & Functional Programming-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 4 Lektionen.
Werte herausnehmen
Ein Tupel zu erstellen ist nur die halbe Aufgabe. Um die enthaltenen Werte zu verwenden, müssen Sie sie wieder herausnehmen.
Scala bietet dafür zwei Hauptmöglichkeiten: nummerierte Zugriffe und Pattern-Destructuring. Diese Lektion behandelt beide.
Zugriff über die Position
Jedes Tupel-Element hat eine Position, auf die Sie mit ._1, ._2 und so weiter zugreifen können.
Beachten Sie, dass die Positionen bei eins beginnen, nicht bei null. ._1 ist also das erste Element.
val person = ("Alice", 30)
println(person._1)
println(person._2)Zugriffsoperatoren im Code verwenden
Positionszugriffe sind praktisch, wenn Sie nur ein Element benötigen.
Hier lesen wir das Alter aus einem Paar aus und addieren eins. Zugriffsoperatoren liefern den ursprünglichen Elementtyp zurück, daher funktioniert die Berechnung direkt.
val record = ("Bob", 42)
val nextYear = record._2 + 1
println(nextYear)Destructuring mit val
._1 und ._2 zu lesen, kann schwer nachvollziehbar werden. Mit Destructuring können Sie jedes Element direkt benennen.
Dieses val-Pattern bindet name und age in einer einzigen Zeile.
val (name, age) = ("Cara", 25)
println(name)
println(age)Warum Destructuring hilfreich ist
Benannte Variablen sind deutlich verständlicher als nummerierte Positionen.
Im Vergleich von age mit person._2 macht die destrukturierte Variante Ihre Absicht deutlich und verhindert Fehler durch falsche Positionen.
val (city, population) = ("Lyon", 500000)
println(s"$city has $population people")Drei Elemente destrukturieren
Destructuring funktioniert für Tupel beliebiger Größe, nicht nur für Paare.
Hier wird ein Tupel mit drei Elementen in einer einzigen Anweisung in drei benannte Variablen aufgeteilt.
val (id, label, active) = (7, "task", true)
println(id)
println(label)
println(active)Mit Unterstrich ignorieren
Manchmal benötigen Sie nur einige der Werte. Verwenden Sie einen Unterstrich _, um eine Position zu überspringen.
Hier behalten wir nur den Namen und ignorieren das Alter vollständig.
val (name, _) = ("Dana", 40)
println(name)Funktionsergebnisse destrukturieren
Funktionen, die Tupel zurückgeben, lassen sich ganz natürlich mit Destructuring kombinieren.
Sie können beide zurückgegebenen Werte direkt beim Aufruf der Funktion benennen. Dadurch wird das Ergebnis selbsterklärend.
def minMax(a: Int, b: Int) = (a min b, a max b)
val (low, high) = minMax(8, 3)
println(low)
println(high)Ein Paar vertauschen
Ein Tupel mit zwei Elementen verfügt über eine integrierte Methode swap, die seine Elemente vertauscht.
Sie gibt ein neues Paar mit umgekehrter Reihenfolge zurück, was gelegentlich praktisch ist.
val pair = ("a", 1)
println(pair.swap)Destructuring in for
Wenn Sie eine Sammlung von Paaren durchlaufen, können Sie im Schleifenkopf Destructuring verwenden.
Jedes Paar wird bei jeder Iteration automatisch in key und value aufgeteilt.
val pairs = List(("a", 1), ("b", 2))
for ((key, value) <- pairs) println(s"$key=$value")Typen bleiben erhalten
Durch Destructuring gehen keine Typinformationen verloren. Jede benannte Variable behält den exakten Typ ihrer Position.
In val (n, age) = ("Eve", 33) ist n also ein String und age ein Int, die typsicher verwendet werden können.
val (n, age) = ("Eve", 33)
println(n.length)
println(age * 2)Kurztest
Testen Sie, was Sie über das Destructuring von Tupeln gelernt haben.
Zusammenfassung
Sie können Tupelwerte mit Positionszugriffen wie ._1 (beginnend bei eins) herausnehmen oder, übersichtlicher, mit Destructuring wie val (a, b) = pair.
Mit dem Unterstrich überspringen Sie nicht benötigte Positionen, Destructuring funktioniert in for-Schleifen und die Typen bleiben stets erhalten. Als Nächstes erkunden Sie Wertebereiche.
Häufig gestellte Fragen
Ist die Lektion „Tupel destrukturieren“ kostenlos?
Ja — der vollständige Text von „Tupel destrukturieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Scala for Backend Engineering & Functional Programming-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Tupel destrukturieren“?
Holen Sie Werte wieder heraus. Du übst Scala for Backend Engineering & Functional Programming 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 Scala for Backend Engineering & Functional Programming zu starten?
Keine Vorkenntnisse erforderlich. Scala for Backend Engineering & Functional Programming 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 2 von 4.
Wie lange dauert die Lektion „Tupel destrukturieren“?
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 Scala for Backend Engineering & Functional Programming-Lektion Code schreiben und ausführen?
Ja. Jede Scala for Backend Engineering & Functional Programming-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
- Tupel erstellen
- Tupel destrukturieren
- Bereiche erstellen
- Bereiche in Schleifen