typestar

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

  1. case shorten(atMark: String) guarda datos en el caso.
  2. case .recall(let numbers) where ... ata y guarda.
  3. El orden importa: el brazo con guarda se prueba primero.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Abstracciones; paso 20 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →