0Pricing
Swift Academy · Lección

Valores raw y CaseIterable

Trabaje con enumeraciones respaldadas por String, Int u otros tipos RawRepresentable, además de allCases.

Valores raw y CaseIterable es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Introducción

Las enumeraciones de Swift pueden tener *valores sin formato*: valores literales almacenados con cada caso. Adoptar `CaseIterable` le proporciona automáticamente una colección con todos los casos.

Enumeraciones con valores sin formato

```swift enum Direction: String { case north = "N" case south = "S" case east = "E" case west = "W" } print(Direction.north.rawValue) // "N" ```

Valores sin formato Int autoincrementales

```swift enum Planet: Int { case mercury = 1 case venus // 2 (auto) case earth // 3 case mars // 4 } print(Planet.earth.rawValue) // 3 ```

Valores sin formato String con nombre automático

```swift enum Color: String { case red, green, blue } print(Color.blue.rawValue) // "blue" — auto-named ``` Con valores sin formato String, si omite la asignación, el valor sin formato coincide con el nombre del caso.

init?(rawValue:) — con posibilidad de fallo

```swift if let dir = Direction(rawValue: "N") { print(dir) // Direction.north } let invalid = Direction(rawValue: "X") // nil ``` El init con posibilidad de fallo generado automáticamente devuelve nil para los valores sin formato no reconocidos.

CaseIterable

```swift enum Season: CaseIterable { case spring, summer, autumn, winter } print(Season.allCases) // [.spring,.summer,.autumn,.winter] print(Season.allCases.count) // 4 ```

Iterar sobre todos los casos

```swift for season in Season.allCases { print(season) } let picker = Season.allCases.map { "\($0)".capitalized } ```

CaseIterable con valores sin formato

```swift enum Suit: String, CaseIterable { case hearts="♥", diamonds="♦", clubs="♣", spades="♠" } print(Suit.allCases.map { $0.rawValue }) // ["♥","♦","♣","♠"] ```

Valores sin formato para Codable

Las enumeraciones con valores sin formato String funcionan perfectamente con `Codable`: ```swift enum Status: String, Codable { case active, inactive, pending } struct User: Codable { var status: Status } // JSON "active" decodes to .active automatically ```

Valores sin formato para máscaras de bits

```swift struct Permission: OptionSet { let rawValue: Int static let read = Permission(rawValue: 1 << 0) static let write = Permission(rawValue: 1 << 1) static let execute = Permission(rawValue: 1 << 2) } var p: Permission = [.read, .write] print(p.contains(.read)) // true ```

Comprobación rápida

¿Qué protocolo permite acceder a todos los casos de una enumeración mediante `allCases`?

Resumen

Puntos clave: • Valores sin formato: `enum E: String { case a = "x" }` • Los valores sin formato Int se incrementan automáticamente; los valores sin formato String toman por defecto el nombre del caso • `init?(rawValue:)` se genera automáticamente y puede fallar • `CaseIterable` proporciona la propiedad estática `.allCases` • Combine `String, CaseIterable` para menús y selectores Siguiente: valores asociados.

Preguntas frecuentes

¿La lección «Valores raw y CaseIterable» es gratis?

Sí — el texto completo de «Valores raw y CaseIterable» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Valores raw y CaseIterable»?

Trabaje con enumeraciones respaldadas por String, Int u otros tipos RawRepresentable, además de allCases. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Valores raw y CaseIterable»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Valores raw y CaseIterable
  2. Valores asociados para datos enriquecidos
  3. Enumeraciones indirectas y estructuras recursivas
  4. Modelado de máquinas de estados con enumeraciones
← Volver a Swift Academy