Middle
Mi az a zárójel a Go-ban?
sobes.tech MI
Válasz az MI-től
A Go-ban a lezárás egy olyan függvény, amely "emlékszik" a környezetében lévő értékekre, még akkor is, ha a külső függvény befejeződött. Ez lehetővé teszi külső változók elfogását és belső használatát.
// Külső függvény
func makeCounter() func() int {
count := 0 // Elfogandó változó
// Belső függvény (lezárás)
return func() int {
count++ // Elfogjuk és módosítjuk a count-ot
return count
}
}
// Használati példa
func main() {
counter1 := makeCounter() // Első lezárás létrehozása
fmt.Println(counter1()) // Kimenet: 1
fmt.Println(counter1()) // Kimenet: 2
counter2 := makeCounter() // Második lezárás létrehozása (saját count-tal)
fmt.Println(counter2()) // Kimenet: 1
}