Junior — Middle
Wyjaśnij mechanizm działania zamknięcia w programowaniu.
sobes.tech AI
Odpowiedź od AI
W programowaniu, zamknięcie (closure) to funkcja, która "pamięta" i może korzystać z zmiennych ze swojego zewnętrznego zakresu, nawet jeśli ta funkcja zewnętrzna już zakończyła wykonanie.
W Go zamknięcia są często tworzone za pomocą funkcji anonimowych, które odwołują się do zmiennych z otaczającego kontekstu. Pozwala to zachować stan między wywołaniami funkcji.
Przykład:
package main
import "fmt"
func licznik() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := licznik()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Tutaj funkcja licznik zwraca zamknięcie, które zwiększa i zwraca wartość count. Zmienna count jest zachowywana w zamknięciu między wywołaniami.