Idiomas e Armadilhas
Padrões e armadilhas que toda base de código Go encontra. Os resultados aparecem na mesma seção de código: comentários // na mesma linha quando curtos, blocos // de várias linhas abaixo da amostra quando não.
Busque em todas as páginas da documentação
Padrões e armadilhas que toda base de código Go encontra. Os resultados aparecem na mesma seção de código: comentários // na mesma linha quando curtos, blocos // de várias linhas abaixo da amostra quando não.
Funções aceitam interfaces, retornam tipos concretos.
// func Salvar(s Store) errorCopie slices antes de retornar o estado interno.
// out := make([]T, len(in)); copy(out, in); return outVariáveis por iteração no Go 1.22+.
// for _, v := range xs { go f(v) } // ok no 1.22+Slice nil codifica como null; vazio codifica como [].
b, _ := json.Marshal([]int(nil))
string(b) // "null"Sempre forneça um caminho de saída.
// select { case <-ctx.Done(): return; case ch <- v: }defer executa no final da função - envolva os corpos do loop.
// for ... { func(){ defer f.Close(); ... }() }Configuração opcional via opções.
// type Option func(*Server)Sempre defina timeouts do cliente/servidor HTTP.
// &http.Client{Timeout: 10 * time.Second}Retorne erro de APIs públicas.
// if id == "" { return fmt.Errorf("id required") }Passe ctx para métodos a cada chamada.
// func (s *Svc) Get(ctx context.Context, id string)Nunca copie um Mutex - compartilhe por ponteiro.
// type S struct { mu sync.Mutex }A ordem de iteração de Map é aleatória.
// não confie na ordem de iteração de mapRetente apenas operações idempotentes com backoff.
// if temporary(err) { sleep; retry }Geração de código como um passo de primeira classe.
// //go:generate mockgen ...Ramifique com errors.Is/As, não com strings.Contains.
// errors.Is(err, ErrNotFound)Versões da Pilha: Go 1.26.x · chi/gin/echo mais recente (verificar na compilação)
Revisado por Chris St. John·Última atualização: 18 de jul. de 2026