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.
We'll cover the following...
We'll cover the following...
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.
Kotlin 1.5
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 ...