Sobes.tech
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.