typestar

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

  1. case ..<5 empareja un rango parcial.
  2. case let g where g > 25 ata y guarda a la vez.
  3. Las tuplas se desestructuran en el case: ("windward", let rounding).

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Control de flujo; paso 5 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →