Middle
Čo je to uzáver v Go?
sobes.tech AI
Odpoveď od AI
Zatváranie v Go je funkcia, ktorá "si pamätá" hodnoty z okolia, aj po tom, čo vonkajšia funkcia skončila. To umožňuje zachytiť premenné zvonku a použiť ich vo vnútri.
// Vonkajšia funkcia
func makeCounter() func() int {
count := 0 // Premenná, ktorá bude zachytená
// Vnútorná funkcia (zatváranie)
return func() int {
count++ // Zachytíme a zmeníme count
return count
}
}
// Príklad použitia
func main() {
counter1 := makeCounter() // Vytvoríme prvé zatváranie
fmt.Println(counter1()) // Výstup: 1
fmt.Println(counter1()) // Výstup: 2
counter2 := makeCounter() // Vytvoríme druhé zatváranie (so svojím count)
fmt.Println(counter2()) // Výstup: 1
}