Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Swift : swift, value type, reference type, struct, class

В чём разница между типами значений (value type) и ссылочными типами (reference type)?

Этот вопрос проверяет понимание фундаментального различия между типами данных в Swift и того, как они ведут себя при копировании и передаче.

Короткий ответ

Value types копируются при передаче или присваивании, а reference types передаются по ссылке. В Swift структуры (struct) и перечисления (enum) — это value types, а классы (class) — reference types.

 

Длинный ответ

Value types (типы значений):

  • Копируются при присваивании или передаче в функцию.

  • Изменения не влияют на оригинал.

  • Примеры: struct, enum, Int, String, Array, Bool.

Reference types (ссылочные типы):

  • Передаются по ссылке.

  • Изменения внутри функции или переменной отражаются на оригинале.

  • Примеры: class, NSObject, UIView.

Пример:

struct ValueType {
    	var number: Int
}

class ReferenceType {
    	var number: Int
    	init(number: Int) { self.number = number }
}

var a = ValueType(number: 10)
var b = a
b.number = 20
print(a.number)  // 10

var c = ReferenceType(number: 10)
var d = c
d.number = 20
print(c.number)  // 20

Когда использовать:

  • Используйте value types, когда вам важна безопасность копий и предсказуемость.

  • Используйте reference types, если нужно совместное использование состояния.

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Swift

    Swift

Ключевые слова

#swift

#value type

#reference type

#struct

#class

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.