Ответ
Associated Value (связанное значение) — это механизм в Swift, позволяющий прикреплять дополнительные данные к конкретному кейсу (case) перечисления (enum). Каждый кейс может хранить значения разных типов и в разном количестве, что делает перечисления гибкими структурами данных, похожими на union в других языках.
Пример объявления и использования:
enum NetworkResponse {
case success(data: Data, statusCode: Int)
case failure(error: Error, retryCount: Int)
}
// Создание экземпляра со связанными значениями
let response = NetworkResponse.success(data: someData, statusCode: 200)
// Извлечение значений через pattern matching
switch response {
case .success(let data, let code):
print("Данные: (data), Код: (code)")
case .failure(let error, let retries):
print("Ошибка: (error), Попыток осталось: (retries)")
}
Ключевые особенности:
- Значения привязаны к конкретному экземпляру кейса.
- Для доступа к ним используется сопоставление с образцом (
switch,if case let). - Позволяет создавать типобезопасные контейнеры для разнородных данных.