Является ли класс типом в Swift?

«Является ли класс типом в Swift?» — вопрос из категории ООП, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, класс (class) в Swift является типом.

В Swift тип определяет свойства и поведение значения. Классы, наряду со структурами (struct), перечислениями (enum) и протоколами (protocol), являются фундаментальными типами, которые можно использовать для объявления переменных, параметров функций и возвращаемых значений.

Пример объявления и использования класса как типа:

// Объявление типа `Person`
class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

// Использование класса как типа:
let john: Person = Person(name: "John") // Аннотация типа
func greet(person: Person) { }          // Параметр типа Person
func createPerson() -> Person { ... }   // Возвращаемый тип Person

Классы как ссылочные типы (Reference Types):

  • При присваивании экземпляра класса новой переменной или константе копируется ссылка на один и тот же объект в памяти.
  • Поддерживают наследование.
  • Могут иметь деинициализаторы (deinit).
let person1 = Person(name: "Alice")
let person2 = person1 // person2 ссылается на тот же объект, что и person1
person2.name = "Bob"
print(person1.name) // Выведет "Bob"