1
resposta

Erro: main.go:4:2: package banco/clientes is not in std (/usr/local/go/src/banco/clientes)

Prezado(a)s,

Boa noite! Ao tentar executar o código desta aula, após dividirmos as nossas structs em novos pacotes (clientes e contas), passei a receber os erros a seguir, acusados no arquivo main.go:

main.go:4:2: package banco/clientes is not in std (/usr/local/go/src/banco/clientes) main.go:5:2: package banco/contas is not in std (/usr/local/go/src/banco/contas)

Pesquisando outros tópicos aqui do curso, encontrei o tópico a seguir que me ajudou a resolver o problema:

https://cursos.alura.com.br/forum/topico-could-not-import-xxx-xxx-cannot-find-package-xxx-xxx-in-goroot-gopath-299409

Basicamente, o que precisei fazer, foi executar o comando "go mod init" na pasta aonde se encontra o arquivo main.go, o que fez com que o arquivo go.mod fosse criado. Notei que ele apenas declara a pasta do projeto como um módulo. Esse seria o conteúdo do mesmo:

module banco

go 1.21.3

No entanto, na aula, este passo não foi necessário. E no post acima, também notei que o mesmo foi encerrado, mas ninguém esclareceu ao certo a razão do erro. Conseguem melhor explicar porque o erro ocorreu no meu caso e pq é necessária esta ação para resolver? Seria algo relacionado com a versão do Go? Desde já agradeço a atenção de todos.

1 resposta

Olá, Carlos, tudo bem?

O erro que você recebeu ocorre porque o Go não reconheceu os pacotes "banco/clientes" e "banco/contas" como pacotes padrão.

Ao executar o comando "go mod init", você está inicializando um módulo Go na pasta onde está o arquivo main.go. Isso cria o arquivo go.mod, que declara a pasta do projeto como um módulo.

Essa ação é necessária para resolver o erro porque, ao criar o módulo, o Go passa a reconhecer os pacotes dentro desse módulo como pacotes válidos.

Quanto à razão específica do erro ocorrer no seu caso, pode estar relacionada à versão do Go, ou no momento em que foi gravado o ambiente já estava configurado de uma maneira que não exigia explicitamente a criação do módulo.

De toda forma, agradeço por compartilhar sua solução também, pois ela poderá ser útil para outros alunos que possam se deparar com esse problema.

Espero ter esclarecido sua dúvida!

Se tiver mais alguma pergunta, não hesite em compartilhar no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!