Destructuring in Kotlin

Lakshay Parnami
3 min readMar 6, 2023

You may extract values from data structures like arrays, lists, and maps into individual variables using Kotlin’s sophisticated destructuring functionality. Without having to manually extract each value, it’s a practical way to retrieve data.

In this article, we’ll look at the fundamentals of Kotlin’s destructuring system and how it may make your code clearer and more expressive.

Destructuring Declarations

Destructuring declarations in Kotlin can be used to extract values from data structures. A destructuring declaration is a technique for simultaneously declaring a number of variables, where each variable represents an individual data structure part.

Here’s an example that demonstrates how to use destructuring declarations with arrays:

val (x, y) = arrayOf(1, 2)
println("x = $x, y = $y") // Output: x = 1, y = 2

In this example, we declare two variables, x and y, and assign them values from the arrayOf(1, 2) array using a destructuring declaration. The values are extracted in the order they appear in the array.

You can also use destructuring declarations with lists:

val map = mapOf("name" to "Lucifer", "age" to 27)
val (name, age) = map
println("Name: $name, Age: $age") // Output: Name: Lucifer, Age: 27

In this example, we declare two variables, name and age, and assign them values from the map using a destructuring declaration. The values are extracted based on the keys in the map.

Destructuring in Function Parameters

Function parameters can also be used in destructuring. This eliminates the need for you to manually extract each value from the function body when you pass in a data structure and extract its contents.

Here’s an example that demonstrates how to use destructuring in function parameters:

fun printPersonDetails(person: Pair<String, Int>) {
val (name, age) = person
println("Name: $name, Age: $age") // Output: Name: Lucifer, Age: 27
}

printPersonDetails("Lucifer" to 27)

In this example, we define a function printPersonDetails that takes a Pair as a parameter. We use a destructuring declaration to extract the values from the Pair into name and age.

We then print out the person’s name and age.

Destructuring with Underscores

You might not always need to use every value in a data structure. The values you don’t need can be ignored in this situation by using underscores.

Here’s an example that demonstrates how to use underscores in destructuring:

val (x, _, z) = arrayOf('a', 'b', 'c')
println("x = $x, z = $z") // Output: x = a, z = c

In this example, we declare three variables, x, _, and z, and assign them values from the arrayOf('a', 'b', 'c') array using a destructuring declaration.

Conclusion

The ability to extract values from data structures like arrays, lists, and maps into individual variables is made possible by Kotlin’s robust destructuring functionality. Without having to manually extract each value, it’s a practical way to retrieve data. Destructuring declarations can be used to simultaneously declare a number of variables, each of which corresponds to a particular data structure element. It can also be used to extract values from data structures in function bodies when function arguments are provided. Moreover, you can ignore data you don’t need by using underscores. Destructuring is a helpful tool for producing Kotlin code that is clear and expressive overall.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Lakshay Parnami
Lakshay Parnami

Written by Lakshay Parnami

Hi, I’m Lakshay Parnami. I’m into Mobile Application Development, I work on Android, Flutter & React Native. I’m currently learning iOS development.

Responses (1)

Write a response

nice examples. thank you