DevToolPal
PT

Formatador de Go

Formate código-fonte Go com o gofmt, compilado para WebAssembly e rodando no seu navegador.

Roda localmente, nada é enviado

Opções

Indentação

Entrada

0 caracteres · 0 B

Saída

0 caracteres · 0 B

O que esta ferramenta faz

O formatador de Go reescreve código-fonte Go no único estilo canônico que toda a comunidade Go usa. Cole um arquivo ou um trecho e ele volta com a indentação, o espaçamento, o agrupamento de imports e o alinhamento de campos de struct e comentários do gofmt.

Ele roda o gofmt de verdade da toolchain do Go, compilado para WebAssembly. Nada é aproximado: o que você vê aqui é exatamente o que o go fmt escreveria, então o código formatado pode ser commitado sem gerar diff no CI.

Como usar

  1. Cole código Go ou abra um arquivo .go.
  2. O código formatado aparece à direita enquanto você digita.
  3. Mantenha a indentação Tab para código que você vai commitar. Escolha 2 espaços ou 4 espaços quando o código for para um documento, um slide ou um site que exibe tabs largos demais.
  4. Copie ou baixe o resultado.

Se o código não puder ser interpretado, a ferramenta mostra o primeiro erro com linha e coluna, por exemplo expected ')', found '{', e você pode pular direto para essa linha.

Exemplo

O exemplo é um programa curto espremido no menor número de linhas possível: imports separados por ponto e vírgula, uma struct em duas linhas e funções sem espaços em volta dos operadores. Depois de formatar:

  • os imports viram um bloco entre parênteses com um pacote por linha;
  • os campos da struct ficam cada um em sua linha, com os tipos alinhados em coluna;
  • if u.Age<18{ vira if u.Age < 18 {, com o corpo em sua própria linha;
  • literais compostos ganham espaços depois de vírgulas e dois-pontos.

O que o gofmt muda e o que não muda

O gofmt só muda o layout. Ele nunca renomeia identificadores, reordena declarações ou remove imports não usados; essas tarefas são de ferramentas como goimports e go vet. Ele também mantém as suas quebras de linha onde elas têm significado, então uma lista longa de argumentos que você dividiu em várias linhas continua dividida.

Os comentários são mantidos e reindentados junto com o código ao redor. Comentários no fim de linhas consecutivas são alinhados em coluna, assim como os campos de struct.

Dicas

  • Formatar é um jeito rápido de achar uma chave faltando: a posição do erro geralmente aponta para a primeira linha depois do engano.
  • Rode o formatador antes de compartilhar código em uma issue ou revisão. Assim quem revisa pode se concentrar no que o código faz, e não na aparência dele.
  • No seu editor, ative o “format on save” com o gopls para que os seus arquivos sempre batam com esta saída.

Perguntas frequentes

› Este é o gofmt de verdade?

Sim. O formatador é o código do gofmt da toolchain do Go compilado para WebAssembly, então a saída é, byte a byte, o que o `gofmt` ou o `go fmt` imprimem na sua máquina.

› Preciso de uma cláusula package?

Não. Um arquivo completo é o ideal, mas o gofmt também aceita uma lista de declarações ou algumas instruções, o que é prático para trechos copiados de um post de blog ou de um chat.

› Por que a indentação usa tabs?

O gofmt sempre indenta com tabs e alinha com espaços. Essa é a convenção do Go, e os editores exibem tabs com a largura que você preferir. Se você precisa de espaços para um documento ou slide, escolha 2 ou 4 espaços e apenas os tabs do início da linha são substituídos.

› Meu código é enviado para algum lugar?

Não. O módulo WebAssembly é baixado uma vez e a formatação roda localmente no seu navegador.