Patrones en switch en Swift
Coincidencia exhaustiva sobre rangos, wheres y tuplas.
let windKts = 18
// switch must be exhaustive; ranges and wheres are patterns.
switch windKts {
case ..<5:
print("Drifter conditions")
case 5..<15:
print("Champagne sailing")
case let g where g > 25:
print("Gale watch: \(g) kts")
default:
print("Fresh breeze, hike hard")
}
// Tuples destructure right in the cases.
let mark = ("windward", 1)
switch mark {
case ("windward", let rounding):
print("Rounding \(rounding) at the top mark")
case (let name, _):
print("Passing \(name)")
}
Cómo funciona
case ..<5empareja un rango parcial.case let g where g > 25ata y guarda a la vez.- Las tuplas se desestructuran en el case:
("windward", let rounding).
Palabras clave y builtins usados aquí
casedefaultletprintswitchwhere
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 482
- Tokens
- 113
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 104 segundos.
Paso 2 de 3 en Control de flujo; paso 5 de 27 en Fundamentos del lenguaje.