Sobes.tech
Junior — Middle

Може ли да се достъпи до променлива, обявена вътре във функция, отвън на нейната област на видимост?

sobes.tech AI

Отговор от AI

В Go, променлива, обявена вътре във функция, има локална област на видимост и не е достъпна директно извън тази функция.

Въпреки това, може да се получи достъп до стойността на променливата отвън чрез затваряния (closures) или връщайки стойността от функцията.

Пример с затваряне:

func брояч() func() int {
    брояч := 0
    return func() int {
        брояч++
        return брояч
    }
}

func main() {
    c := брояч()
    fmt.Println(c()) // 1
    fmt.Println(c()) // 2
}

Тук, променливата брояч е обявена вътре във функцията брояч, но е достъпна чрез върнатата функция.

Без тези методи, няма директен достъп до локалната променлива отвън на функцията.