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
}
Тук, променливата брояч е обявена вътре във функцията брояч, но е достъпна чрез върнатата функция.
Без тези методи, няма директен достъп до локалната променлива отвън на функцията.