Sobes.tech
Junior — Middle

Wyjaśnij koncepcję closure i jak jest używana w programowaniu

sobes.tech AI

Odpowiedź od AI

Zamknięcie (closure) to funkcja, która «zapamiętuje» środowisko, w którym została utworzona, w tym dostęp do zmiennych z zewnętrznego zakresu, nawet jeśli ta strefa już opuściła kontekst wykonania.

W programowaniu zamknięcie jest używane do:

  • Zachowania stanu między wywołaniami funkcji bez użycia zmiennych globalnych.
  • Inkapsulacji danych i tworzenia prywatnych zmiennych.
  • Tworzenia funkcji z domyślnymi parametrami, które zachowują wartości.

Przykład w Swift (iOS):

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

Tutaj incrementer to closure, które przechwytuje i zachowuje zmienną total z funkcji zewnętrznej, umożliwiając zachowanie stanu między wywołaniami.