Swift — Структура и класс

  • И структура, и класс могут определять свойства, методы, подскрипты, инициализаторы, могут быть расширены и соответствовать протоколу.

  • Особенности, которые есть только у класса, но нет у структуры — наследование, приведение типов, деинициализатор, подсчет ссылок (позволяет использовать более одной ссылки на экземпляр класса).

пример

struct Resolution {
    var width = 0
    var height = 0
}
class VideoMode {
    var resolution = Resolution()
    var interlaced = false
    var frameRate = 0.0
    var name: String?
}
Вход в полноэкранный режим Выход из полноэкранного режима
let someResolution = Resolution()
let someVideoMode = VideoMode()
Войти в полноэкранный режим Выход из полноэкранного режима
  • Инициализаторы членов для типов структур — Все структуры имеют автоматически создаваемый инициализатор членов, который можно использовать для инициализации свойств членов новых экземпляров структур.

  • Структуры и перечисления являются типами значений
    Тип значения — это тип, значение которого копируется при присвоении переменной или константе, или при передаче функции.

Целые числа, числа с плавающей точкой, булевы числа, строки, массивы и словари — это типы значений в swift, которые реализуются как структуры за кулисами.

  • Классы являются ссылочными типами. Ссылочные типы не копируются, когда они присваиваются переменной или константе, или когда они передаются в функцию.

  • Классы являются ссылочными типами, поэтому несколько констант и переменных могут ссылаться на один и тот же экземпляр класса. Оператор тождества используется для проверки того, ссылаются ли две константы или переменные на один и тот же экземпляр.

  1. Идентично (===)
  2. Не идентичен (!==)

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *