0Pricing
Swift Academy · Lección

Valores asociados para datos enriquecidos

Asocie datos a los casos y extráigalos mediante coincidencia de patrones.

Valores asociados para datos enriquecidos es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 2 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

Los valores asociados permiten que cada caso de una enumeración contenga datos adicionales. Convierten las enumeraciones en uniones discriminadas potentes, la base del modelado de estados con seguridad de tipos en Swift.

Definir valores asociados

```swift enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } let product = Barcode.upc(8,85909,51226,3) let web = Barcode.qrCode("https://example.com") ```

Extraer valores con switch

```swift switch barcode { case .upc(let n, let m, let p, let c): print("UPC: \(n)-\(m)-\(p)-\(c)") case .qrCode(let code): print("QR: \(code)") } ``` También puede usar `case let` para vincular todos los valores a la vez: ```swift case let .upc(n,m,p,c): ... ```

Valores asociados con nombre

```swift enum NetworkResult { case success(statusCode: Int, data: Data) case failure(error: Error) } if case .success(let code, let data) = result { ... } ``` Las etiquetas aclaran el contexto de vinculación.

Valores asociados frente a valores sin procesar

• Valores sin procesar: constantes en tiempo de compilación, todos los casos tienen el mismo tipo, propiedad `rawValue` • Valores asociados: datos en tiempo de ejecución, cada caso tiene su propio tipo, se extraen mediante coincidencia de patrones No puede tener ambos en la misma enumeración.

Opcionales como enumeraciones

El `Optional` de Swift es literalmente: ```swift enum Optional { case some(Wrapped) case none } ``` Cada `if let`, `switch` y `??` funciona con este mismo mecanismo.

Result<Success, Failure>

```swift func fetch() -> Result { ... } switch fetch() { case .success(let data): process(data) case .failure(let err): print(err) } ``` `Result` es una enumeración de la biblioteca estándar con dos casos que tienen valores asociados.

Coincidencia de patrones en if case

```swift let item = Barcode.qrCode("hello") if case .qrCode(let code) = item { print("QR code: \(code)") } ``` `if case` resulta conciso cuando solo le interesa un caso.

Guard case

```swift func process(_ result: NetworkResult) { guard case .success(_, let data) = result else { return } handle(data) } ``` `guard case` sale de forma anticipada si el patrón no coincide.

Enumeraciones en colecciones

```swift let events: [AppEvent] = [.login("alice"), .pageView("/home"), .logout] let logins = events.compactMap { if case .login(let u) = $0 { return u } else { return nil } } ```

Comprobación rápida

¿Qué palabra clave se utiliza para extraer valores asociados dentro de un caso de switch?

Resumen

Conceptos clave: • Los valores asociados vinculan datos a casos individuales • Extráigalos con `switch`, `if case` o `guard case` • Use etiquetas con nombre para mayor claridad: `.success(code: Int, data: Data)` • `Optional` y `Result` son enumeraciones de la biblioteca estándar con valores asociados • No puede combinar valores asociados y valores sin procesar en una misma enumeración Siguiente: enumeraciones indirectas y estructuras recursivas.

Preguntas frecuentes

¿La lección «Valores asociados para datos enriquecidos» es gratis?

Sí — el texto completo de «Valores asociados para datos enriquecidos» 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 asociados para datos enriquecidos»?

Asocie datos a los casos y extráigalos mediante coincidencia de patrones. 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 2 de 4.

¿Cuánto tiempo toma la lección «Valores asociados para datos enriquecidos»?

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