Junior — Middle
Vysvětlete mechanismus fungování uzávěrek v programování.
sobes.tech AI
Odpověď od AI
V programování je uzávěr (closure) funkce, která "pamatuje" a může používat proměnné z jejího vnějšího rozsahu, i když tato vnější funkce již dokončila vykonávání.
V jazyce Go jsou uzávěry často vytvářeny pomocí anonymních funkcí, které přistupují k proměnným z okolního kontextu. To umožňuje uchovávat stav mezi voláními funkce.
Příklad:
package main
import "fmt"
func čítač() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := čítač()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Zde funkce čítač vrací uzávěr, který zvyšuje a vrací hodnotu count. Proměnná count je udržována v uzávěru mezi voláními.