Что такое componentN()

«Что такое componentN()» — вопрос из категории Kotlin, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

componentN() — это оператор декомпозиции в Kotlin, позволяющий разложить объект данных (data class) на отдельные компоненты.

Пример:

data class User(val name: String, val age: Int)

fun main() {
    val user = User("Alex", 30)
    val (name, age) = user // component1() и component2() вызываются автоматически
    println("$name, $age") // Alex, 30
}

Для data class компилятор генерирует component1(), component2() и т.д., соответствующие свойствам в порядке объявления. Можно использовать и вручную:

val name = user.component1()  
val age = user.component2()  

Применяется в деструктуризации, например, в циклах, лямбдах или при работе с Pair/Triple.