Что такое reference type в Swift?

«Что такое reference type в Swift?» — вопрос из категории Swift Core, который задают на 38% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Reference type (ссылочный тип) — это тип данных, экземпляры которого хранятся в куче и передаются по ссылке. При присваивании или передаче в функцию копируется только ссылка на один и тот же объект в памяти.

Ключевые особенности:

  • Изменение объекта через одну ссылку видно через все остальные.
  • Используют подсчет ссылок (ARC) для управления памятью.
  • Поддерживают наследование.

Пример с классом:

class Person {
    var name: String
    init(name: String) { self.name = name }
}

let person1 = Person(name: "Alice")
let person2 = person1 // Копируется ссылка, а не объект
person2.name = "Bob"

print(person1.name) // "Bob" — изменение через person2 затронуло person1

Почему это важно: Понимание reference types критично для управления памятью, предотвращения непреднамеренного совместного изменения состояния и выбора между классом и структурой. В Swift к reference types относятся классы, замыкания и акторы.