> Что копируется, а что передается по ссылке в Swift (iOS, Swift)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Avito
Стек: iOS, Swift
> Пример ответа
В Swift передача параметров в функции и присваивание работают по значению для структур (struct), перечислений (enum) и базовых типов (Int, String, Array, Dictionary, Set). Это означает, что при передаче такого объекта создается его копия. Однако копирование происходит лениво (copy-on-write) для коллекций: реальное копирование выполняется только при изменении копии.
Для классов (class) и замыканий (closure) передача идет по ссылке: переменная хранит ссылку на объект в куче, и при присваивании или передаче в функцию копируется только сама ссылка, а не данные. Таким образом, изменения через любую ссылку влияют на один и тот же объект.
Исключение - функции с модификаторами inout: они передают параметр по ссылке, но это явное поведение, а не стандартное.
> Похожие задачи по mobile
Как работает дедлок и как его избежать
На каких архитектурах писали и какие плюсы и минусы вы видите
Куда помещать пароль в HTTP запросе, чтобы он был зашифрован и не был виден сниферу
Какой следующий этап после технического интервью
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью