Skip to content

Latest commit

 

History

History
18 lines (14 loc) · 2.21 KB

5.3.1.2 ClassvsStruct.md

File metadata and controls

18 lines (14 loc) · 2.21 KB

Class vs Struct

Классы и структуры дают разработчикам Swift возможность создавать собственные сложные типы со свойствами и методами, но у них есть пять важных отличий:

Comparision Class Structure
Type Classes are reference types Structures are value types
Initializer Классы не имеют синтезированных поэлементных инициализаторов (memberwise initializers) Struct gets a default initializer automatically
Deinit У классов есть деинициализаторы - методы, вызываемые при уничтожении экземпляра класса У структур нет deinit
Inheritance Classes have an inheritance that allows one class to inherit the characteristics of another Structures do not support inheritance
Storage Class instances are stored on the heap Structure properties are stored on the stack
Unique of copy Копии классов фактически указывают на одни и те же общие данные Копии структур всегда уникальны
Thread−safe Classes are not fully thread−safe The structure is thread−safe or singleton at all times
Recreating При изменении свойств в классе он не пересоздается, поэтому в классах нужно помечать изменчивые переменные ключевым словом @Published При изменении свойства в структуре - она каждый раз пересоздается, поэтому структура автоматически подменяет view экраны

5.3.1.1 List Value and Reference types Theme | Back To iOSWiki Contents | 5.3.1.3 Reference Types Folder