É possível acessar uma variável declarada como pública e que está no escopo de suas chaves dentro de uma função?
sobes.tech IA
Resposta da IA
No Go, o âmbito de uma variável é limitado ao bloco em que ela é declarada. Se uma variável for declarada dentro de chaves numa função (variável local), ela só está disponível dentro dessa função e dos seus blocos internos. A visibilidade (exportabilidade) de uma variável em Go é determinada pela letra maiúscula no nome e refere-se à visibilidade de outros pacotes, não dentro da função.
Assim, dentro de uma função, pode aceder a uma variável declarada nas suas chaves se ela tiver sido declarada na mesma função ou em escopos externos. Se a variável for declarada dentro da função, ela é local e só está disponível dentro dessa função. Se a variável for declarada fora da função e exportada (pública), também pode ser acedida dentro da função.
Exemplo:
package main
import "fmt"
var PublicVar = "disponível em todo o pacote e de outros pacotes"
func exemplo() {
localVar := "disponível apenas dentro de exemplo"
fmt.Println(PublicVar) // acesso à variável pública
fmt.Println(localVar) // acesso à variável local
}
func main() {
exemplo()
}
Se uma variável for declarada dentro de uma função, ela não pode ser acessada fora dessa função, mesmo que o seu nome seja "público" (com letra maiúscula).