Junior — Middle
Izskaidrojiet slēdža darbības mehānismu programmēšanā.
sobes.tech AI
Atbilde no AI
Programmēšanā aizvērums (closure) ir funkcija, kas "atceras" un var izmantot ārējā apgabala mainīgos, pat ja šī ārējā funkcija jau ir pabeigusi izpildi.
Go valodā aizvērumi bieži tiek veidoti ar anonīmām funkcijām, kas piekļūst apkārtējā konteksta mainīgajiem. Tas ļauj saglabāt stāvokli starp funkcijas izsaukumiem.
Piemērs:
package main
import "fmt"
func skaitītājs() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := skaitītājs()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Šeit funkcija skaitītājs atgriež aizvērumu, kas palielina un atgriež count vērtību. Mainīgais count tiek saglabāts aizvērumā starp izsaukumiem.