Sobes.tech
Junior — Middle

É possível aceder a uma variável declarada dentro de uma função de fora do seu âmbito?

sobes.tech IA

Resposta da IA

No Go, uma variável declarada dentro de uma função tem um âmbito local e não está acessível fora dessa função diretamente.

No entanto, é possível aceder ao valor da variável de fora através de closures ou retornando o valor da função.

Exemplo com closure:

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

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

Aqui, a variável count é declarada dentro da função contador, mas está acessível através da função devolvida.

Não há acesso direto à variável local de fora da função sem esses métodos.