Valores asociados en Swift
Los case de un enum cargan datos; el switch los desempaca.
// Enum cases can carry payloads; switch unpacks them.
enum RaceSignal {
case shorten(atMark: String)
case recall(sailNumbers: [Int])
}
func announce(_ signal: RaceSignal) -> String {
switch signal {
case .shorten(let mark):
return "Finish shortened at \(mark)"
case .recall(let numbers) where numbers.count > 2:
return "General recall"
case .recall(let numbers):
return "Individual recall: \(numbers)"
}
}
print(announce(.shorten(atMark: "leeward")))
print(announce(.recall(sailNumbers: [207, 88])))
print(announce(.recall(sailNumbers: [207, 88, 415])))
Cómo funciona
case shorten(atMark: String)guarda datos en el caso.case .recall(let numbers) where ...ata y guarda.- El orden importa: el brazo con guarda se prueba primero.
Palabras clave y builtins usados aquí
IntStringcasecountenumfuncletprintreturnswitchwhere
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 556
- Tokens
- 137
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 126 segundos.
Paso 2 de 3 en Abstracciones; paso 20 de 27 en Fundamentos del lenguaje.