Pular para o conteúdo

Configurando o Ambiente

Antes de escrever qualquer código Go, você precisa de três coisas:

  1. Toolchain do Go - o compilador, a biblioteca padrão e a ferramenta de linha de comando go
  2. Editor com suporte a Go - para ter autocompletar, navegação e formatação automática
  3. Um módulo - a forma como o Go organiza um projeto e suas dependências

A boa notícia: o Go é distribuído como um pacote único. Não existe uma etapa separada para instalar gerenciador de dependências, formatador ou executor de testes - tudo vem junto no comando go.

Baixe o instalador oficial em go.dev/dl e escolha a versão estável mais recente para o seu sistema.

  1. Baixe o arquivo .msi e execute o instalador
  2. O instalador coloca o Go em C:\Program Files\Go e já adiciona C:\Program Files\Go\bin ao PATH
  3. Feche e reabra o terminal para que o PATH atualizado seja carregado

Se preferir um gerenciador de pacotes:

Terminal window
winget install GoLang.Go

Use o instalador .pkg do site oficial ou o Homebrew:

Terminal window
brew install go

Remova qualquer instalação anterior em /usr/local/go, extraia o arquivo baixado e adicione o binário ao PATH:

Terminal window
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.X.Y.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
source ~/.profile

Troque go1.X.Y.linux-amd64.tar.gz pelo nome do arquivo que você baixou.

Terminal window
go version

A saída deve ser algo como:

go version go1.X.Y linux/amd64

Para ver as variáveis de ambiente que o Go está usando (onde ficam os módulos baixados, o cache de build, o sistema e a arquitetura de destino):

Terminal window
go env

Duas variáveis aparecem com frequência em tutoriais:

  • GOROOT - onde o Go está instalado. Você raramente precisa mexer nela.
  • GOPATH - pasta onde o Go guarda módulos baixados e binários instalados com go install (por padrão, ~/go). Desde a chegada dos módulos, você não precisa colocar seus projetos dentro do GOPATH - eles podem morar em qualquer pasta.

Para que binários instalados com go install fiquem disponíveis no terminal, adicione $(go env GOPATH)/bin ao seu PATH.

EditorComo configurar
VS CodeInstale a extensão oficial Go
GoLandIDE da JetBrains dedicada ao Go, já vem pronta para uso
Neovim / VimConfigure o gopls pelo cliente LSP de sua preferência

Por baixo dos panos, quase todos os editores usam o gopls, o language server oficial do Go. No VS Code, a extensão oferece instalar o gopls e as demais ferramentas na primeira vez que você abre um arquivo .go - aceite.

Uma configuração que vale ativar: formatar ao salvar. Em Go não se discute estilo de código - todo mundo usa o gofmt, e o editor aplica a formatação automaticamente.

Um módulo é um projeto Go: uma pasta com um arquivo go.mod que declara o nome do módulo e a versão do Go usada.

Terminal window
mkdir ola-go
cd ola-go
go mod init example.com/ola-go

O nome do módulo costuma ser o caminho do repositório (por exemplo, github.com/seu-usuario/ola-go). Para estudos locais, qualquer nome serve.

O comando gera o go.mod:

module example.com/ola-go
go 1.X

Crie um arquivo main.go na mesma pasta:

package main
import "fmt"
func main() {
fmt.Println("Olá, Caramelo Tech!")
}

E execute:

Terminal window
go run .
Olá, Caramelo Tech!
ComandoO que faz
go run .Compila e executa o pacote da pasta atual, sem gerar binário
go buildCompila e gera um executável na pasta atual
go fmt ./...Formata todos os arquivos do módulo
go vet ./...Procura erros comuns que compilam, mas provavelmente são bugs
go test ./...Executa os testes do módulo
go mod tidyAdiciona dependências que faltam e remove as que não são usadas
go get pacoteAdiciona ou atualiza uma dependência
go doc fmtMostra a documentação de um pacote no terminal

O ./... significa “esta pasta e todas as subpastas”.

Para testar um trecho rápido, use o Go Playground no navegador. Ele roda o código em um servidor e permite compartilhar o resultado por link - útil para tirar dúvidas em comunidades.

O diretório bin do Go não está no PATH. Reabra o terminal depois da instalação; se continuar, adicione manualmente (/usr/local/go/bin no Linux/macOS ou C:\Program Files\Go\bin no Windows).

Você está rodando um comando de módulo fora de um módulo. Rode go mod init <nome> na pasta do projeto, ou entre na pasta que contém o go.mod.