Pular para o conteúdo principal

Formatador de Go

API reference

Formate e embeleze código-fonte Go — indentação com tabs derivada da profundidade de chaves e parênteses, posicionamento obrigatório da chave de abertura na mesma linha, espaçamento não ambíguo de operadores e vírgulas, espaçamento de dois-pontos em literais compostos e ordenação opcional de importações da biblioteca padrão e de terceiros — mantendo strings `backtick` brutas e comentários byte a byte intactos.

Entrada

Drop a file or browse
One file · text
Ou

Opções de formatação

Saída

Código Go formatado
 
Isso foi útil?

Mais formas de usar esta ferramenta

API REST

curl -X POST https://api.iotools.cloud/v1/tool/go-formatter \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "goInput": "package main\n\nimport (\n\"fmt\"\n\"os\"\n\"github.com/sp…",
    "sortImports": "true"
  }'

Troque pela sua própria chave, da sua conta. Os campos da ferramenta viram o corpo da requisição — sem envelope.

Peça a um agente de IA

Use the IOTools `go-formatter` tool (Go Formatter) on this input:

YOUR_INPUT_HERE

Cole isto em qualquer agente conectado ao servidor MCP do IOTools e depois adicione sua entrada.

Widget para incorporar

<iframe
  src="https://iotools.cloud/embed/go-formatter/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Formatador de Go — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

Coloque isso na sua própria página — grátis, sem chave, só um link de volta.

Custo por chamada de API/MCPA partir de 5 créditos
Precisa de mais créditos?Ver preços

Também disponível via

Guias

Cole código Go desorganizado e receba de volta código-fonte limpo e conforme ao gofmt — instantaneamente, no seu navegador. O Formatador de Go reindenta com tabs, move cada chave de abertura para a mesma linha do if/for/func/struct a que pertence, ajusta espaçamentos em torno de operadores e vírgulas, e pode ordenar e agrupar suas importações em blocos de biblioteca padrão e de terceiros — tudo isso deixando strings brutas `backtick` e comentários completamente intactos.

Por que tabs, e por que a chave nunca muda de lugar

Duas coisas sobre a formatação de Go não são realmente escolhas de estilo — são a convenção da própria linguagem. A indentação é sempre feita com tabs, nunca com espaços; esta ferramenta não oferece a opção de espaços, porque o gofmt também não oferece. E a chave de abertura permanece na mesma linha da palavra-chave que a possui: o Go realiza inserção automática de ponto e vírgula no fim de cada linha, então um { sozinho em uma linha pode mudar silenciosamente o significado do código, não apenas a aparência. Esta ferramenta sempre une uma chave deslocada de volta à linha anterior.

Como usar

Cole seu código-fonte Go ou envie um arquivo .go. Ative Ordenar e agrupar importações se quiser que o bloco import seja reorganizado em um grupo de biblioteca padrão e outro de terceiros, cada um ordenado alfabeticamente. Copie o resultado ou baixe-o como formatted.go. A formatação roda automaticamente enquanto você digita ou altera a opção.

O que é normalizado

  • Indentação — tabs, a partir da profundidade de aninhamento de chaves e parênteses. case/default recuam um nível em relação ao corpo do switch.
  • Posicionamento de chaves — uma linha só com { é sempre unida à linha anterior.
  • Espaçamento de operadores — operadores binários não ambíguos recebem um espaço simples de cada lado: :=, ==, !=, <=, >=, &&, ||, <<, >>, &^, =, e as formas de atribuição composta.
  • Espaçamento de vírgulas e ponto e vírgula — nenhum espaço antes, um espaço depois.
  • Dois-pontos em literais compostos — User{Name:"x"} vira User{Name: "x"}, enquanto os dois-pontos de slices e índices permanecem justos (s[1:3]). Isto é uma desambiguação real, não um palpite: a ferramenta acompanha o tipo do colchete mais interno aberto em todo o arquivo, e só adiciona espaço quando esse colchete é {, nunca [.
  • struct{, interface{ e cabeçalhos de instrução sem parênteses (if x > 0{, for i := range xs{) recebem um espaço antes da chave, assim como assinaturas de função como func f() error{.
  • Ordenação de importações (opcional) — grupos de biblioteca padrão e de terceiros, cada um ordenado alfabeticamente e separado por uma linha em branco.
  • Linhas em branco — reduzidas a no máximo uma seguida, nenhuma logo após { ou logo antes de }, e exatamente uma inserida antes de um func/type/var/const de nível superior.

O que deliberadamente não mexe

  • +, -, *, & unários vs. binários, e o operador de canal <- (binário em um envio, um prefixo unário justo em um recebimento). Distingui-los exige análise sintática real, então o espaçamento original deles é preservado.
  • Quebra de linhas — nada é reorganizado para mais ou menos linhas do que você forneceu.
  • Qualquer coisa dentro de uma string. Strings brutas `...` são preservadas **byte a byte** — quebras de linha, indentação, chaves e dois-pontos inclusive — pois costumam conter SQL e templates. Tags de struct (`json:"name"`) também não são alteradas internamente.
  • Comentários. Comentários // e /* */, inclusive comentários de bloco de várias linhas, são copiados sem alterações.

É igual ao gofmt?

Não — é um formatador de texto sem dependências que roda inteiramente no seu navegador, não um analisador real de Go. O gofmt constrói uma árvore sintática completa; esta ferramenta trabalha sobre texto tokenizado, o que resulta em tabs corretos, posicionamento correto de chaves e espaçamento sensato, sem precisar instalar o Go.

Meu código é privado?

Totalmente. Toda a formatação acontece localmente no seu navegador — seu código nunca é enviado a um servidor, registrado ou armazenado.

gogolanggofmtcode formatterbeautifyindenttabsimports

Ama as ferramentas? Livre-se dos anúncios.

Um único pagamento remove todos os anúncios da sua conta, para sempre. Sem assinatura, sem rastreamento.