Middle
Wat is een closure in Go?
sobes.tech AI
Antwoord van AI
Closure in Go is een functie die de waarden uit de omringende scope "herinnert", zelfs nadat de buitenliggende functie is voltooid. Dit maakt het mogelijk om variabelen van buitenaf vast te leggen en binnenin te gebruiken.
// Buitenfunctie
func makeCounter() func() int {
count := 0 // Variabele die wordt vastgelegd
// Interne functie (closure)
return func() int {
count++ // Vastleggen en wijzigen van count
return count
}
}
// Voorbeeld van gebruik
func main() {
counter1 := makeCounter() // Maak de eerste closure
fmt.Println(counter1()) // Output: 1
fmt.Println(counter1()) // Output: 2
counter2 := makeCounter() // Maak een tweede closure (met eigen count)
fmt.Println(counter2()) // Output: 1
}