Switch avanzado con pattern matching
Escriba switches expresivos: haga coincidir valores asociados, rangos y tuplas, y añada cláusulas where. Mantenga las ramas exhaustivas y legibles.
Switch avanzado con pattern matching es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 2 de 3. 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 3 lecciones en total.
¿Por qué usar la coincidencia de patrones?
El switch de Swift compara patrones: enumeraciones con valores asociados, rangos numéricos, tuplas y condiciones where. Además, es exhaustivo.
Valores asociados
Vincule los valores asociados mediante let/var directamente en el patrón del caso.
enum Network {
case success(code: Int, body: String)
case failure(message: String)
case offline
}
let r1: Network = .success(code: 200, body: "OK")
switch r1 {
case .success(let code, let body):
print("success", code, body)
case .failure(let msg):
print("fail:", msg)
case .offline:
print("offline")
}Coincidencia de rangos
Compare rangos numéricos como 90...100 o 80..<90. Use , para comparar varios patrones en un mismo caso.
let score = 73
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 60..<80:
print("C")
case 0..<60:
print("D")
default:
print("invalid")
}Tuplas y where
Compare tuplas y refine el resultado con una condición where para comprobaciones legibles similares a las de geometría.
let point = (x: -2, y: 3)
switch point {
case (0, 0):
print("origin")
case (let x, 0):
print("x-axis at", x)
case (0, let y):
print("y-axis at", y)
case (let x, let y) where x > 0 && y > 0:
print("Q1:", x, y)
default:
print("somewhere else")
}Comodines y coincidencias parciales
Use _ para ignorar campos o vincular solo lo que necesite. Mantenga las ramas pequeñas y claras.
enum Event {
case message(String, priority: Int)
case ping
}
let e: Event = .message("update", priority: 1)
switch e {
case .message(let text, priority: _):
print("msg:", text) // ignore priority with _
case .ping:
print("ping")
}Consejos
Consejos:
- Prefiera primero los casos específicos; reserve default para el resto poco frecuente.
- Vincule valores con case let y refine la coincidencia mediante where.
- Diseñe las enumeraciones para que switch pueda ser exhaustivo sin un caso default siempre que sea posible.
El poder de switch
Comprobación rápida: ¿Por qué el switch de Swift es más expresivo?
Resumen
Resumen: Use switch para coincidir con patrones: vincule los valores asociados de las enumeraciones, seleccione rangos, combine tuplas y filtre con where, manteniendo la cobertura exhaustiva.
Preguntas frecuentes
¿La lección «Switch avanzado con pattern matching» es gratis?
Sí — el texto completo de «Switch avanzado con pattern matching» 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 3 lecciones en total.
¿Qué aprenderé en «Switch avanzado con pattern matching»?
Escriba switches expresivos: haga coincidir valores asociados, rangos y tuplas, y añada cláusulas where. Mantenga las ramas exhaustivas y legibles. 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 3.
¿Cuánto tiempo toma la lección «Switch avanzado con pattern matching»?
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
- Enums con funcionalidades avanzadas
- Switch avanzado con pattern matching
- Modelado de estados finitos