Eduard Mitasov

Eduard Mitasov 

ios-interview.ru

20subscribers

15posts

goals1
2 of 100 paid subscribers
Когда я наберу 100 платных подписчиков, то буду уделять больше времени написанию новых статей

Разница между Value Type и Reference Type

Итак, разберемся что такое Value Type и Reference Type и чем стек отличается от кучи. В Swift есть две категории типов:
Value Type (Тип значения) — каждый экземпляр хранит уникальную копию своих данных. То есть происходит создание нового экземпляра (копии) при присвоении значения переменной/константе или при передаче экземпляра в функцию.
Reference Type (Ссылочный тип) — каждый экземпляр использует одну копию данных. То есть сохраняется/возвращается ссылка на тот же экземпляр при присвоении значения переменной/константе или при передаче экземпляра в функцию.

Разделим типы в Swift на две категории:
Тип значения:
- Int
- Double
- String
- Array
- Dictionary
- Set
- Struct
- Enum
- Tuple
Ссылочный тип
- Функции
- Замыкания
- Классы
- Экземпляры ссылочного типа (Reference Type), например, функции или классы хранятся в управляемой динамической памяти — куче (heap).
- Экземпляры типа значения (Value Type), такие, как структура или массив, находятся в области памяти, называемой стеком (stack).
Существует одно важное замечание — если экземпляр типа значения является частью экземпляра ссылочного типа, то значение сохраняется в куче вместе с экземпляром ссылочного типа. Например, структура сама по себе хранится в стеке, но если эта структура расположена в классе, то так как класс хранится в куче, то и структура будет сохранена в куче.

Стек используется для распределения статической памяти, а куча — для распределения динамической памяти, которая хранятся в оперативной памяти компьютера.
Subscription levels3

Благодарность

$1.41 per month
Этим вы выразите вашу благодарность за мой труд и получаете доступ к закрытым постам

Более внушительная Благодарность

$4.3 per month
Этим вы поддержите мой канал и сайт:
Канал: https://t.me/ios_interview
Сайт: https://ios-interview.ru
А также получаете доступ к закрытым постам.

VIP Благодарность

$7.1 per month
Этим вы:
- поддерживаете затраты на содержание серверов для сайта и бота:
   -- Канал: https://t.me/ios_interview
   -- Сайт: https://ios-interview.ru
   -- Бот с вопросами: https://t.me/ios_interview_bot
- поддерживаете автора
- получаете доступ к закрытым постам
Go up