Назад к вопросам
Junior
136
questionbank
Что такое enum, raw value и associated value в Swift?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Enum (перечисление) — это тип, определяющий группу связанных значений. Raw value — это предустановленное значение (например, Int, String, Double), которое можно связать с каждым элементом перечисления. Associated value — это значение, которое может быть добавлено к конкретному элементу перечисления для хранения дополнительной информации, не являющейся частью типа raw value.
enum HTTPStatus: Int { // raw value Int
case success = 200
case notFound = 404
case internalServerError = 500
case custom(code: Int, message: String) // associated value
}
let successStatus = HTTPStatus.success
print(successStatus.rawValue) // 200
let customStatus = HTTPStatus.custom(code: 418, message: "I'm a teapot")
switch customStatus {
case .custom(let code, let message):
print("Custom status code: \(code), message: \(message)")
default:
print("Other status")
}
Основные отличия:
| Признак | Raw Value | Associated Value |
|---|---|---|
| Тип | Предопределенный (Int, String и др.) | Любой тип(ы) |
| Связь | Привязан к каждому элементу при объявлении | Привязан к конкретному экземпляру элемента |
| Назначение | Идентификация элемента | Хранение дополнительных данных элемента |
| Обязательность | Опционально | Определяется при объявлении элемента |