Destructuringdeclaraties met componentN
Splits instanties van data classes met componentfuncties op in variabelen.
Destructuringdeclaraties met componentN is een gratis Kotlin Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Kotlin Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Kotlin Academy bevat in totaal 4 lessen.
De basis van destructurering
Een destructurerende declaratie pakt een object in één stap uit in meerdere variabelen. Hiervoor worden de operatorfuncties componentN() gebruikt.
Een gegevensklasse destructureren
Gegevensklassen genereren automatisch component1, component2, ... zodat je val (a, b) = obj kunt schrijven.
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")
}Een Pair destructureren
De standaardbibliotheektypen Pair en Triple ondersteunen destructurering direct.
fun main() {
val pair = "Ada" to 35
val (name, age) = pair
println("$name is $age")
}Een Triple destructureren
Triple bevat drie waarden; destructureer deze in drie variabelen.
fun main() {
val rgb = Triple(255, 128, 0)
val (r, g, b) = rgb
println("R=$r G=$g B=$b")
}Destructurering tijdens mapiteratie
Mapvermeldingen hebben component1 (sleutel) en component2 (waarde). Destructureer ze in de kop van een for-lus.
fun main() {
val ages = mapOf("Alice" to 30, "Bob" to 25)
for ((name, age) in ages) {
println("$name -> $age")
}
}Destructurering in lambda's
Lambda's die paren accepteren, kunnen parameters rechtstreeks destructureren.
fun main() {
val pairs = listOf("a" to 1, "b" to 2, "c" to 3)
pairs.forEach { (letter, num) -> println("$letter=$num") }
}Waarden negeren met _
Gebruik de underscore _ om waarden over te slaan die je niet nodig hebt.
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)")
}Meerdere waarden retourneren
Een functie kan een Pair of een aangepaste gegevensklasse retourneren; de aanroeper destructureert het resultaat.
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")
}Aangepaste componentN
Elke klasse kan destructurering ondersteunen door operator fun componentN() te declareren.
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")
}Destructurering met withIndex()
Combineer de index en de waarde van een paar wanneer je met withIndex() itereert.
fun main() {
val fruits = listOf("apple", "banana", "cherry")
for ((idx, fruit) in fruits.withIndex()) {
println("$idx: $fruit")
}
}Beperking: op positie gebaseerd
Destructurering gebeurt op positie, niet op naam. Als je velden van een gegevensklasse opnieuw ordent, verandert de betekenis op aanroeppunten stilletjes.
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")
}Korte controle
Welke operatorfunctie maakt destructurering van de i-de eigenschap mogelijk?
Samenvatting
Destructurering gebruikt de operatorfuncties componentN(). Gegevensklassen, Pair, Triple en mapvermeldingen ondersteunen dit direct. Gebruik _ om waarden over te slaan en let op: destructurering gebeurt op positie, niet op naam.
Leer Kotlin met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 51
- Lessen
- 203
Veelgestelde vragen
Is de les “Destructuringdeclaraties met componentN” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Kotlin Academy, waaronder “Destructuringdeclaraties met componentN”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Kotlin Academy bevat in totaal 4 lessen.
Wat leer ik in “Destructuringdeclaraties met componentN”?
Splits instanties van data classes met componentfuncties op in variabelen. Je oefent met Kotlin Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Kotlin Academy te beginnen?
Ervaring vooraf is niet nodig. Kotlin Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Destructuringdeclaraties met componentN”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Kotlin Academy?
Ja. Elke les over Kotlin Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Basisprincipes van data classes: automatisch gegenereerde methoden
- Kopiëren met copy() en gedeeltelijk overschrijven
- Destructuringdeclaraties met componentN
- Data classes in collecties en als map-sleutels