Resposta rápida: Go Docs é uma forma comum de procurar a documentação Go (Golang) oficial. Use go.dev/doc para guias, especificação e notas de versão; pkg.go.dev para pacotes, tipos, funções e exemplos; e go doc no terminal para consultar a API disponível no seu ambiente. Para a ajuda do toolchain, rode go help. Se um blog, vídeo ou resposta de IA divergir dessas fontes, confirme o comportamento na documentação correspondente à versão do projeto. Buscas como “Golang documentation”, “Go docs” e “documentação Go” apontam para os mesmos lugares: este guia organiza o caminho em português.
A documentação Go é uma das maiores vantagens da linguagem. Go foi desenhada para ter uma biblioteca padrão forte, comandos consistentes e uma cultura de exemplos pequenos. Em vez de depender de dezenas de posts desatualizados, você consegue resolver muita coisa lendo a referência oficial, executando exemplos e consultando o próprio toolchain.
O problema para quem está começando é saber onde procurar. Existe go.dev/doc, existe pkg.go.dev, existe go doc, existem páginas do blog oficial, propostas, issues, release notes e exemplos embutidos nos pacotes. Este guia organiza esse mapa em português: o que cada fonte resolve, como pesquisar melhor, como conferir a versão documentada e como transformar referência em código testado.
Se você ainda está no início da trilha, comece pelo tutorial Go em português e pelo guia Go para iniciantes. Depois volte aqui para aprender a usar a documentação como ferramenta diária.
Go Docs, go.dev, pkg.go.dev e go doc: qual é a diferença?
Os nomes parecem apontar para a mesma coisa, mas cada recurso resolve uma dúvida diferente:
- Go Docs não é um produto separado: é um nome informal usado em buscas pela documentação da linguagem.
go.devé o domínio oficial do projeto Go; sua área/docreúne guias, tutoriais, especificação e notas de versão.pkg.go.devé o catálogo pesquisável da biblioteca padrão e dos módulos públicos, com APIs, versões, exemplos e links para o código-fonte.go docé a consulta pelo terminal. Segundo a referência oficial do comando, ele mostra a documentação associada a pacotes, símbolos, métodos ou campos.go helpexplica comandos e tópicos do toolchain, como módulos, testes, build e padrões de pacotes.
A escolha rápida é: dúvida sobre a linguagem, vá ao go.dev/doc; dúvida sobre uma API, use pkg.go.dev ou go doc; dúvida sobre um comando, use go help.
Links diretos da documentação Go oficial
Se você chegou aqui pesquisando por “go docs”, “go documentação”, “Go documentation” ou “Golang documentation”, estes são os destinos oficiais:
| Recurso | Link ou comando | Use para |
|---|---|---|
| Documentação principal | go.dev/doc | guias, especificação, tutoriais e notas de versão |
| Referência de pacotes | pkg.go.dev | funções, tipos, métodos, exemplos e módulos |
| Tour interativo | go.dev/tour | aprender sintaxe e conceitos no navegador |
| Especificação | go.dev/ref/spec | confirmar regras formais da linguagem |
| Notas do Go 1.27 | go.dev/doc/go1.27 | conferir mudanças da versão estável usada pelo site |
| Blog oficial | go.dev/blog | contexto, padrões e anúncios do projeto |
| Documentação local | go doc pacote.Simbolo | consultar a API disponível no seu toolchain |
| Ajuda dos comandos | go help comando | entender go test, go build, go mod e flags |
Não existe um portal oficial separado chamado “Golang Docs”. Go é o nome oficial da linguagem; “Golang” é o termo usado para facilitar buscas. Portanto, go.dev e pkg.go.dev são também a resposta correta para quem procura “documentação Golang”. Para acompanhar as mudanças da versão atual em português, veja também Go 1.27: novidades e melhorias; se o projeto ainda está na série anterior, use o resumo do Go 1.26.
O mapa rápido da documentação Go
Use esta regra simples:
| Sua dúvida | Onde procurar primeiro | Exemplo |
|---|---|---|
| Como a linguagem funciona? | go.dev/doc e especificação | interfaces, generics, modelo de memória |
| Como usar um pacote? | pkg.go.dev | net/http.Client, json.Decoder |
| O que existe na versão instalada? | go doc | go doc net/http.Server |
| Como funciona um comando? | go help | go help testflag |
| O que mudou em uma versão? | release notes em go.dev/doc | mudanças de linguagem e standard library |
| Por que um recurso foi desenhado assim? | Go Blog, proposals e issues | contexto, compatibilidade e trade-offs |
Na prática, pkg.go.dev responde “como uso este pacote?”; go help responde “como uso este comando?”; e go.dev/doc responde “qual é o modelo mental correto da linguagem?”. Para comportamento sensível à versão, compare a página online com go version, go.mod e go doc no projeto.
Como usar pkg.go.dev sem se perder
O pkg.go.dev é a referência de pacotes do ecossistema Go. Para qualquer pacote, ele mostra documentação, tipos exportados, funções, métodos, exemplos, versão do módulo, licença e import path.
Exemplo: ao abrir pkg.go.dev/net/http, você encontra:
- o caminho correto de importação:
import "net/http"; - funções como
ListenAndServe,HandleFunceNewRequest; - tipos como
Client,Request,Response,HandlereServer; - exemplos executáveis quando o pacote tem testes de exemplo;
- links para o código-fonte.
O ponto mais importante: em Go, nomes com letra maiúscula são exportados. A documentação pública mostra principalmente funções, tipos e métodos exportados. Se você não encontra uma função na documentação, talvez ela seja interna ao pacote ou não faça parte da API pública.
Quando pesquisar, prefira consultas específicas:
site:pkg.go.dev net/http Client timeout
site:pkg.go.dev encoding/json Decoder DisallowUnknownFields
site:pkg.go.dev context WithTimeout example
Isso evita cair em respostas genéricas e leva direto para a referência.
Confira a versão do pacote antes de copiar
O pkg.go.dev pode mostrar a versão mais recente de um módulo, enquanto seu projeto usa outra. Antes de aplicar um exemplo, confira o módulo selecionado na página e compare com o projeto:
go version
go list -m all
go list -m -json exemplo.com/modulo
Na standard library, o comportamento acompanha a versão do toolchain. Em dependências externas, leia a documentação da versão declarada no go.mod, não apenas a versão mais nova. Se uma função aparece no site mas o compilador diz undefined, a primeira suspeita deve ser diferença de versão.
Para APIs adicionadas recentemente, procure a indicação “added in” no pkg.go.dev e confira as release notes. Para dependências, abra também o link Source Files: comentários, testes e implementação esclarecem contratos que um snippet isolado não mostra.
go doc: documentação direto no terminal
O comando go doc é subestimado. Ele permite consultar documentação sem abrir o navegador:
go doc fmt
go doc fmt.Println
go doc net/http.Client
go doc context.WithTimeout
Para listar mais detalhes de um pacote:
go doc -all net/http
Para ver código-fonte junto da documentação:
go doc -src strings.Builder
Esse fluxo é ótimo quando você está programando e quer confirmar assinatura, comentário ou comportamento sem quebrar o ritmo. Como consulta o código disponível no seu ambiente, ele também reduz o risco de ler documentação de uma versão diferente.
Combine com estes comandos:
go list -f '{{.Doc}}' net/http # resumo do pacote
go list -f '{{.Dir}}' net/http # diretório do código-fonte
go env GOROOT # raiz da instalação do Go
go env GOPATH # cache e workspace padrão
go test ./... # valida o uso no projeto
No editor, o gopls usa essas mesmas informações para exibir comentários em hover, completar símbolos, navegar para definições e localizar referências. O hover é uma consulta rápida; para detalhes sobre concorrência, erros, efeitos colaterais e compatibilidade, abra a documentação completa.
Pacotes da standard library que todo iniciante deve conhecer
A biblioteca padrão é grande, mas você não precisa ler tudo. Para ser produtivo em backend, CLI e automação, comece por estes pacotes:
| Pacote | Para que serve |
|---|---|
fmt | formatação de strings e saída no terminal |
strings | manipulação de texto |
strconv | conversão entre strings e números |
errors | criação e comparação de erros |
context | cancelamento, timeout e escopo de requisição |
net/http | servidores e clientes HTTP |
encoding/json | leitura e escrita de JSON |
time | datas, durações, timers e deadlines |
os | arquivos, variáveis de ambiente e processos |
io | leitura e escrita por streams |
testing | testes unitários e benchmarks |
log/slog | logs estruturados para produção |
Depois aprofunde conforme o projeto: database/sql para banco de dados, sync para concorrência, regexp para expressões regulares, embed para arquivos embutidos e flag para CLIs.
Documentação dos comandos Go
A documentação da linguagem não é só pacote. O toolchain também é parte central do dia a dia. Estes comandos aparecem em quase todo projeto:
go mod init exemplo.com/app # cria um módulo
go mod tidy # sincroniza dependências
go run . # executa o programa
go test ./... # roda testes
go fmt ./... # formata código
go vet ./... # aponta problemas suspeitos
go build ./... # compila pacotes
Para entender um comando em detalhe, use:
go help mod
go help testflag
go help build
go help packages
Se o seu problema é dependência, leia também Go Modules na prática. Se é teste, vá para testes em Go e depois para TDD e CI/CD com Go.
Como ler documentação quando você ainda não sabe inglês técnico
A documentação oficial de Go é majoritariamente em inglês. Você não precisa traduzir palavra por palavra. Procure os padrões:
- Package: explica a finalidade do pacote.
- func: função exportada.
- type: tipo exportado, como struct ou interface.
- method: função ligada a um tipo.
- Example: exemplo executável.
- Deprecated: API antiga; evite em código novo.
- Since: versão do Go em que aquele recurso apareceu.
Quando encontrar um pacote novo, leia nesta ordem:
- parágrafo inicial do pacote;
- exemplos;
- tipos principais;
- funções de criação, como
NewClient,NewRequestouNewEncoder; - notas de erro, concorrência e compatibilidade.
Esse método funciona melhor do que tentar memorizar tudo. Go favorece APIs pequenas; a documentação fica mais útil quando você lê com um problema concreto em mãos.
Exemplo prático: descobrindo como fazer uma requisição HTTP
Imagine que você quer chamar uma API externa. Em vez de procurar um tutorial aleatório, vá ao pacote net/http e procure por Client, NewRequestWithContext e Do.
Um esqueleto seguro fica assim:
package main
import (
"context"
"fmt"
"net/http"
"time"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
req, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://example.com", nil)
if err != nil {
panic(err)
}
client := &http.Client{Timeout: 10 * time.Second}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.StatusCode)
}
A documentação mostra as peças; a prática junta contexto, timeout, cliente e tratamento de erro. Para transformar isso em uma aplicação completa, siga o guia de API REST com Go.
Como avaliar um exemplo oficial
Exemplos do pkg.go.dev normalmente vêm de funções Example nos arquivos _test.go. Eles têm uma vantagem importante: podem ser compilados e executados por go test, o que reduz a chance de ficarem quebrados silenciosamente.
Ao encontrar um exemplo útil, siga este fluxo:
- confirme o import path e a versão;
- abra o exemplo completo, não apenas a linha destacada;
- observe se há
defer, fechamento de recursos e tratamento de erro; - adapte nomes e dados, preservando o contrato da API;
- escreva um teste pequeno no seu módulo;
- rode
go test ./...e, quando aplicável,go vet ./....
Para aprender a escrever exemplos que também viram documentação, crie uma função ExampleNome em um arquivo _test.go e inclua uma seção // Output: quando a saída for determinística:
func ExampleSaudacao() {
fmt.Println(Saudacao("Gopher"))
// Output: Olá, Gopher!
}
Esse padrão conecta documentação e teste executável. Para uma estratégia mais ampla, veja testes em Go e table-driven tests.
Como documentar seu próprio código Go (doc comments)
Documentação Go não é só leitura: tudo que você vê no pkg.go.dev vem de doc comments escritos por quem desenvolveu o pacote. Se você escreve código que outras pessoas vão usar — inclusive você mesmo em seis meses —, vale documentar seguindo a mesma convenção da biblioteca padrão.
As regras básicas, definidas no guia oficial de doc comments:
- o comentário fica imediatamente acima da declaração (sem linha em branco);
- começa pelo nome do item declarado:
// Contador é...,// Incrementa soma...; - um comentário acima da cláusula
packagedocumenta o pacote inteiro; em pacotes grandes, ele costuma morar num arquivodoc.go; - para programas
main, o comentário de pacote descreve o programa, não o pacote; - desde o Go 1.19, doc comments suportam listas, links e blocos de código — e o
gofmtformata esses comentários junto com o resto do código.
Um exemplo no estilo da standard library:
// Package cache fornece um cache em memória com expiração por TTL.
package cache
// Contador é um contador seguro para uso concorrente.
// Use NewContador para criar instâncias com valor inicial.
type Contador struct {
// campos não exportados
}
// Incrementa soma delta ao valor atual e retorna o novo total.
// Retorna um erro se delta for negativo.
func (c *Contador) Incrementa(delta int) (int, error) {
// implementação
}
Para marcar uma API como ultrapassada, use o marcador reconhecido pelo toolchain:
// Leitura está obsoleta; use LeituraContext.
//
// Deprecated: não trata cancelamento.
func (c *Contador) Leitura() int { ... }
O marcador Deprecated: aparece no go doc, nas inspeções do gopls e no pkg.go.dev, avisando quem usa o pacote. Para conferir como sua documentação ficou antes de publicar, rode go doc . e go doc -all ./... no seu módulo — é a mesma fonte que o pkg.go.dev vai exibir quando o pacote for público.
Esse hábito conecta leitura e escrita: quem lê a referência oficial com frequência escreve doc comments melhores, porque imita o estilo curto e direto da standard library.
Checklist de documentação antes de copiar código
Antes de copiar um snippet de blog, GitHub ou IA, cheque:
- o pacote ainda é mantido?
- a função está marcada como
Deprecated? - a API existe na versão de Go ou do módulo que você usa?
- o exemplo trata erro?
- há timeout ou cancelamento quando envolve rede?
- há teste ou exemplo oficial parecido?
- o import path é o mesmo do módulo atual?
- o tipo é seguro para uso concorrente?
- o chamador precisa fechar, cancelar ou liberar algum recurso?
Esse checklist evita bugs comuns: cliente HTTP sem timeout, erro ignorado, pacote antigo, dependência desnecessária, recurso não fechado e uso de API experimental sem perceber.
Perguntas frequentes
Onde fica a documentação oficial de Go?
Os guias oficiais, a especificação, as release notes e os tutoriais ficam em go.dev/doc. A referência pesquisável de pacotes da standard library e de módulos públicos fica em pkg.go.dev. No terminal, use go doc e go help.
A documentação Go existe em português?
Parte do material introdutório, como o Tour of Go, possui tradução, mas a referência oficial é majoritariamente em inglês. Você não precisa traduzir tudo: identifique pacote, tipo, função, parâmetros, retorno, erros, exemplos e avisos de compatibilidade. Este guia funciona como mapa em português para a fonte oficial.
Qual documentação devo ler primeiro para aprender Go?
Comece pelo Tour of Go, depois consulte pacotes conforme constrói algo: fmt, strings, errors, context, net/http, encoding/json, testing e log/slog. Para o toolchain, aprenda go help mod, go help testflag, go fmt, go vet e go test.
Qual é a diferença entre Go Docs, go.dev, pkg.go.dev e go doc?
“Go Docs” é uma busca informal pela documentação oficial. O domínio go.dev hospeda o projeto e seus guias; go.dev/doc organiza a documentação principal; pkg.go.dev permite pesquisar APIs de pacotes e módulos; e go doc mostra essa documentação no terminal para o código disponível no ambiente.
Como escrever documentação para meu próprio pacote Go?
Use doc comments: comentários imediatamente acima de cada declaração exportada, começando pelo nome do item, e um comentário de pacote acima da cláusula package. A sintaxe completa (listas, links, blocos de código, marcador Deprecated:) está no guia oficial de doc comments. Visualize o resultado com go doc . antes de publicar.
Go documentation e Golang documentation são a mesma coisa?
Sim. Go é o nome oficial da linguagem; “Golang” é o apelido usado para facilitar buscas, herdado do antigo domínio golang.org. Por isso, procurar por Go documentation, Golang documentation ou documentação Go leva às mesmas fontes oficiais: go.dev/doc e pkg.go.dev. Não existe um portal separado chamado “Golang Docs”.
Como saber se a documentação corresponde à minha versão?
Rode go version para a standard library e go list -m all para dependências. No pkg.go.dev, confirme a versão selecionada do módulo. Se a API online não compila localmente, compare a versão em que ela foi adicionada com o go.mod e o toolchain usados pelo projeto.
Próximo passo
Use a documentação como parte da rotina: escreva código, leia a assinatura, rode teste, ajuste. Para continuar a trilha em português, siga estes caminhos:
- Go para iniciantes para fundamentos;
- Go Modules na prática para dependências;
- Cheatsheet Go para consulta rápida;
- Logging estruturado com slog para produção;
- Effective Go em 2026 para separar fundamentos clássicos de práticas modernas;
- Vagas Go no Brasil para conectar estudo com mercado.
A documentação Go é curta por design. Quanto mais você usa pkg.go.dev, go doc e go help, menos depende de receitas soltas e mais rápido consegue ler código Go real em empresas brasileiras.
Última atualização: Outubro de 2026 — diferença entre Go Docs, go.dev, pkg.go.dev e go doc, equivalência Go/Golang documentation, links oficiais, Go 1.27, fluxo de consulta por versão e como escrever doc comments no seu próprio código.