Sobes.tech
Junior — Middle

Hozzáférhető-e egy függvényen belül deklarált változó kívülről?

sobes.tech MI

Válasz az MI-től

Go-ban egy függvényen belül deklarált változónak helyi hatálya van, és nem érhető el közvetlenül a függvényen kívül.

Azonban hozzáférhetünk a változó értékéhez kívülről zárványok (closures) vagy a függvényből való visszatérés révén.

Zárvány példája:

func számláló() func() int {
    szám := 0
    return func() int {
        szám++
        return szám
    }
}

func main() {
    c := számláló()
    fmt.Println(c()) // 1
    fmt.Println(c()) // 2
}

Itt a szám változó a számláló függvényen belül van deklarálva, de a visszatérő függvényen keresztül elérhető.

Ezek nélkül a módszerek nélkül nem lehet közvetlenül hozzáférni a helyi változóhoz a függvényen kívül.