Junior — Middle
Explica la diferencia entre un cierre y una función en programación.
sobes.tech AI
Respuesta de la IA
Una función es un bloque de código que realiza una tarea específica y puede aceptar parámetros y devolver un resultado.
Un cierre (closure) es una función que captura y mantiene el acceso a variables del ámbito externo, incluso después de que esa función externa haya terminado de ejecutarse.
Ejemplo en Swift:
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
let incrementer: () -> Int = {
total += amount
return total
}
return incrementer
}
let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20
Aquí, incrementer es un cierre que mantiene el estado de total entre llamadas, aunque makeIncrementer ya haya terminado su ejecución. Una función normal no tiene este comportamiento.