Middle
Kas ir aizvēršana Go?
sobes.tech AI
Atbilde no AI
Aizvērums Go ir funkcija, kas "atceras" apkārtējās vides vērtības, pat pēc ārējās funkcijas pabeigšanas. Tas ļauj noķert ārējos mainīgos un izmantot tos iekšienē.
// Ārējā funkcija
func makeCounter() func() int {
count := 0 // Noķerama mainīgā
// Iekšējā funkcija (aizvērums)
return func() int {
count++ // Noķer un maina count
return count
}
}
// Piemērs izmantošanai
func main() {
counter1 := makeCounter() // Izveido pirmo aizvērumu
fmt.Println(counter1()) // Izvade: 1
fmt.Println(counter1()) // Izvade: 2
counter2 := makeCounter() // Izveido otro aizvērumu (ar savu count)
fmt.Println(counter2()) // Izvade: 1
}