Типы данных определяют набор возможных значений и операции, которые можно над ними выполнять. В Swift они делятся на Value Types и Reference Types.
Value Types (типы-значения):
Примеры Value Types:
struct)enum)tuple)Int, Double, Bool, String, массивы (Array), словари (Dictionary), множества (Set).swift
Reference Types (ссылочные типы):
Примеры Reference Types:
class)func)closure)swift
Таблица с основными типами:
| Категория | Тип(ы) | Value/Reference Type | Описание |
|---|---|---|---|
| Целочисленные | Int, UInt, Int8, UInt8 и т.д. | Value | Целые числа разного размера, со знаком и без |
| Плавающая точка | Float, Double | Value | Числа с дробной частью |
| Булевы | Bool | Value | Логические значения (true или false) |
| Строки | String | Value | Последовательность символов |
| Коллекции | Array, Dictionary, Set | Value | Упорядоченные/неупорядоченные коллекции однотипных элементов |
| Структуры | struct | Value | Составные пользовательские типы, хранящие связанные значения |
| Перечисления | enum | Value | Определяют общий тип для группы связанных значений |
| Кортежи | (value1, value2, ...) | Value | Группируют несколько значений в один составной тип |
| Классы | class | Reference | Составные пользовательские типы, поддерживающие наследование и ссылочное поведение |
| Функции | () -> Void, (Int) -> String и т.д. | Reference | Блоки исполняемого кода |
| Замыкания | { (parameters) -> return type in code } | Reference | Самодостаточные блоки кода, которые могут быть переданы и использованы |
| Опционалы | Type? (синтаксический сахар для Optional<Type>) | Value | Представляет либо значение типа Type, либо его отсутствие (nil) |
Выбор между Value и Reference Type зависит от задачи: Value Types предпочтительнее для мелких данных и обеспечения потокобезопасности, Reference Types - для сложных объектов, требующих общего состояния и наследования.