typestar

defer en Swift

Limpieza agendada a la entrada, corrida en cada salida.

// defer schedules cleanup for scope exit, whatever the path out.
func scoreRace(entries: Int) -> String {
    print("Opening the finish log")
    defer { print("Closing the finish log") }

    guard entries > 0 else {
        return "Abandoned: empty start line"
    }
    return "Scored \(entries) finishers"
}

print(scoreRace(entries: 14))
print("---")
print(scoreRace(entries: 0))

Cómo funciona

  1. defer { ... } corre cuando el alcance termina, con éxito o sin él.
  2. El retorno temprano del guard igual dispara el cierre diferido.
  3. Los defer se leen como preparación y desmontaje lado a lado.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
357
Tokens
71
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 61 segundos.

Escribe este fragmento

Paso 3 de 3 en Errores y alcance; paso 24 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →

defer en otros lenguajes