> Как передаются параметры функции в Kotlin, по ссылке или по значению (Kotlin, Android)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Юрент
Стек: Kotlin, Android
> Пример ответа
В Kotlin параметры всегда передаются по значению. Однако важно понимать, что это означает в контексте ссылочных типов.
- Для примитивных типов (
Int,Boolean,Doubleи т.д.) передаётся копия значения. Изменение параметра внутри функции не влияет на исходную переменную. - Для объектов (классов, массивов, списков) передаётся копия ссылки на объект. Сама ссылка передаётся по значению, но обе ссылки (внутри и снаружи функции) указывают на один и тот же объект в памяти. Поэтому изменение полей объекта внутри функции видно снаружи, но переназначение параметра (например,
param = null) не повлияет на исходную ссылку.
Пример:
fun modify(value: Int, list: MutableList<Int>) { value = 10 // Ошибка компиляции: val нельзя переприсвоить, но если бы можно было, исходная переменная не изменилась бы list.add(5) // Изменяет исходный список list = mutableListOf(1,2,3) // Ошибка компиляции: val нельзя переприсвоить }
Итог: Kotlin - строго "передача по значению", но для объектов это значение является ссылкой.
> Похожие задачи по mobile
Как сравнить два объекта дата класса по значению в Kotlin
Уровень: seniorКатегория: Технические вопросы
Компания: Idea Platform
Стек: Kotlin, Android
Почему нельзя работать с generic без inline в Kotlin
Уровень: seniorКатегория: Технические вопросы
Компания: MTS
Стек: Kotlin, Android
Что такое деструктуризация в Kotlin и как она работает
Уровень: juniorКатегория: Технические вопросы
Компания: Совкомбанк, Rutube
Стек: Kotlin, Android
Может ли data class в Kotlin иметь пустой конструктор
Уровень: middleКатегория: Технические вопросы
Компания: Альфа-банк, Dogma
Стек: Kotlin, Android
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью