Junior — Middle
Paaiškinkite uždarymo veikimo mechanizmą programavime.
sobes.tech AI
Atsakymas iš AI
Programavime uždarymas (closure) yra funkcija, kuri "atsimena" ir gali naudoti išorinės aplinkos kintamuosius, net jei ši išorinė funkcija jau baigė vykdyti.
Go kalboje uždarymai dažnai kuriami naudojant anonimines funkcijas, kurios prieina prie aplinkos konteksto kintamųjų. Tai leidžia išlaikyti būseną tarp funkcijos kvietimų.
Pavyzdys:
package main
import "fmt"
func skaitiklis() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := skaitiklis()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Čia funkcija skaitiklis grąžina uždarymą, kuris didina ir grąžina count reikšmę. Kintamasis count išlieka uždaryme tarp kvietimų.