Destructing
Learn how to use position-based destructuring in Kotlin to assign multiple variables to components of a single object and explore its advantages and pitfalls.
Exploring position-based destructuring
Kotlin supports a feature called position-based destructuring, which lets us assign multiple variables to components of a single object. For that, we place our variable names in parentheses.
Press + to interact
data class Player(val id: Int,val name: String,val points: Int)fun main() {val player = Player(0, "Gecko", 9999)val (id, name, pts) = playerprintln(id) // 0println(name) // Geckoprintln(pts) // 9999}
Destructuring mechanism
This mechanism relies on position, not names. The object on the right side of the equality sign needs to provide the functions component1
, component2
, etc., and the variables are assigned to the results of these methods.
val (id, name, pts) = player// is compiled toval id: Int = player.component1()val name: String = player.component2()val pts: Int = player.component3()
The mechanism behind position-based destructuring
This code works ...