Junior — Middle
Selgitage sulgemise mehhanismi programmeerimises.
sobes.tech AI
Vastus AI-lt
Programmeerimises on sulg (closure) funktsioon, mis "mäletab" ja saab kasutada välise konteksti muutujad, isegi kui see väline funktsioon on juba lõpetanud täitmise.
Go keeles luuakse sulgusid sageli anonüümsete funktsioonide abil, mis pääsevad ligi ümbritseva konteksti muutujatele. See võimaldab säilitada olekut funktsiooni kutsumiste vahel.
Näide:
package main
import "fmt"
func arvuti() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := arvuti()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Siin tagastab arvuti funktsioon sulgu, mis suurendab ja tagastab count väärtuse. Muutuja count säilitatakse sulgus funktsiooni vahelise kutsumise ajal.