Sobes.tech
Junior — Middle

Leg uit hoe het mechanisme van closures werkt in programmeren.

sobes.tech AI

Antwoord van AI

In programmeren is een closure een functie die zich "herinnert" en variabelen uit haar externe scope kan gebruiken, zelfs als die externe functie al is voltooid.

In Go worden closures vaak gemaakt met behulp van anonieme functies die toegang krijgen tot variabelen uit de omringende context. Dit stelt je in staat om de staat tussen functieaanroepen te behouden.

Voorbeeld:

package main
import "fmt"

func teller() func() int {
    count := 0
    return func() int {
        count++
        return count
    }
}

func main() {
    c := teller()
    fmt.Println(c()) // 1
    fmt.Println(c()) // 2
    fmt.Println(c()) // 3
}

Hier geeft de functie teller een closure terug die de waarde van count verhoogt en teruggeeft. De variabele count wordt in de closure bewaard tussen de aanroepen door.