Clausuras en Swift
Llaves al final y $0: la forma del Swift de todos los días.
let finishers = ["Sable", "Kestrel", "Petrel", "Brant"]
// A closure is a function literal; trailing syntax moves it out of
// the parentheses, and $0 names the first parameter.
let shouted = finishers.map { $0.uppercased() }
print(shouted)
let podium = finishers.sorted { $0.count < $1.count }
print("Shortest name first: \(podium)")
// Closures capture their surroundings.
var horn = 0
let sound = { horn += 1 }
sound(); sound()
print("Horn sounded \(horn) times")
Cómo funciona
map { $0.uppercased() }es una clausura fuera de los paréntesis.sorted { $0.count < $1.count }compara con dos posicionales.- Las clausuras capturan:
soundincrementa elhornde afuera.
Palabras clave y builtins usados aquí
countletmapprintsortedvar
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 469
- Tokens
- 96
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 89 segundos.
Paso 2 de 3 en Funciones y clausuras; paso 8 de 27 en Fundamentos del lenguaje.