> Каким ключевым словом обозначаются параметры конструктора в data class Kotlin, если они используются только в init блоке (Kotlin, Android)

Уровень: middle · Роль: mobile · Категория: Технические вопросы

Компании: Dogma

Стек: Kotlin, Android

> Пример ответа

В Kotlin для параметров конструктора data class, которые используются только в блоке init и не являются свойствами класса, применяется ключевое слово private. Однако в data class все параметры первичного конструктора по умолчанию становятся свойствами (полями) класса. Если нужно, чтобы параметр не стал свойством и использовался исключительно для инициализации, его следует объявить в теле класса как обычный параметр функции или конструктора, но не в первичном конструкторе data class.

Пример корректного подхода:

data class User(val name: String) {
    init {
        // Параметр name - свойство, доступно в init
        println("Name length: ${name.length}")
    }
}

Если же нужно скрыть параметр от внешнего использования и использовать его только в init, можно применить модификатор private к свойству:

data class User(private val name: String) {
    init {
        println("Name length: ${name.length}")
    }
}

Но строго говоря, в data class нельзя объявить параметр, который не станет свойством. Для таких случаев лучше использовать обычный класс.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью