0Pricing
Swift Academy · Lección

Patrones opcionales en switch y for

Compare opcionales con patrones case let.

Patrones opcionales en switch y for es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 4 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.

Opcionales en switch

Puede usar switch directamente sobre un opcional. Los casos .some(value) y .none coinciden con un valor presente o con nil.

let value: Int? = 7
switch value {
case .some(let n):
    print("Got \(n)")
case .none:
    print("Nothing")
}

El patrón abreviado ?

Escribir case let x? es una forma abreviada de .some(x). El ? final significa "desempaquetar en x".

let value: String? = "Swift"
switch value {
case let text?:
    print(text.uppercased())
case nil:
    print("none")
}

Coincidir directamente con nil

Puede coincidir con el caso nil usando el literal nil en lugar de .none, lo que resulta más natural de leer.

let value: Int? = nil
switch value {
case let n?:
    print(n)
case nil:
    print("no value")
}

Coincidir con valores específicos

Puede combinar valores específicos desempaquetados con el patrón de desempaquetado general.

let status: Int? = 404
switch status {
case 200?:
    print("OK")
case 404?:
    print("Not Found")
case let code?:
    print("Other: \(code)")
case nil:
    print("No status")
}

for case let en bucles

Al iterar sobre opcionales, for case let x? in array omite automáticamente los elementos nil y desempaqueta el resto.

let items: [Int?] = [1, nil, 3, nil, 5]
for case let n? in items {
    print(n)
}

Cómo filtra for case

El patrón case let n? solo coincide con elementos distintos de nil, por lo que el cuerpo del bucle se ejecuta únicamente para los valores presentes.

let names: [String?] = ["Ann", nil, "Bo"]
for case let name? in names {
    print(name.count)
}

Equivalente con if let

Podría obtener el mismo resultado con if let dentro de un bucle normal, pero for case let x? es más conciso.

let items: [Int?] = [2, nil, 4]
for item in items {
    if let item {
        print(item)
    }
}

Coincidir con opcionales de enumeraciones

El patrón de opcional se combina con otros patrones, como al coincidir con valores específicos dentro del opcional.

let codes: [Int?] = [1, 2, nil, 3]
for case let c? in codes where c % 2 == 1 {
    print("odd: \(c)")
}

where con for case

Añada una cláusula where para aplicar un filtro adicional después de desempaquetar en un bucle for case.

let scores: [Int?] = [40, nil, 80, 95]
for case let s? in scores where s >= 80 {
    print("high: \(s)")
}

Switch con where

Dentro de un switch sobre un opcional, la vinculación desempaquetada puede precisarse con una cláusula where.

let value: Int? = 12
switch value {
case let n? where n > 10:
    print("big: \(n)")
case let n?:
    print("small: \(n)")
case nil:
    print("none")
}

Por qué usar estos patrones

Los patrones de opcionales permiten gestionar valores presentes y ausentes en una única estructura exhaustiva, lo que reduce las comprobaciones de nil dispersas.

let result: String? = nil
switch result {
case let r?:
    print("Value: \(r)")
case nil:
    print("Empty result")
}

Comprobación rápida

Pruebe los patrones de opcionales.

Repaso: patrones de opcionales en switch y for

Use case let x? (abreviatura de .some) y case nil en un switch, y for case let x? para iterar sobre elementos distintos de nil mientras los desempaqueta, con la posibilidad de aplicar un filtro adicional mediante where.

let xs: [Int?] = [10, nil, 20]
for case let x? in xs { print(x) }

Preguntas frecuentes

¿La lección «Patrones opcionales en switch y for» es gratis?

Sí — el texto completo de «Patrones opcionales en switch y for» 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 «Patrones opcionales en switch y for»?

Compare opcionales con patrones case let. 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 4 de 4.

¿Cuánto tiempo toma la lección «Patrones opcionales en switch y for»?

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. if let y vinculación abreviada
  2. guard let para salir anticipadamente
  3. Vinculación de varios opcionales
  4. Patrones opcionales en switch y for
← Volver a Swift Academy