DevToolPal
IT

Formattatore Go

Formatta il codice sorgente Go con gofmt, compilato in WebAssembly ed eseguito nel tuo browser.

Eseguito in locale, mai caricato

Opzioni

Indentazione

Input

0 caratteri · 0 B

Output

0 caratteri · 0 B

Cosa fa questo strumento

Il formattatore Go riscrive il codice sorgente Go nell’unico stile canonico usato da tutta la community Go. Incolla un file o uno snippet e lo ottieni con l’indentazione, la spaziatura, il raggruppamento degli import e l’allineamento di campi struct e commenti di gofmt.

Esegue il vero gofmt della toolchain Go, compilato in WebAssembly. Niente è approssimato: quello che vedi qui è esattamente ciò che scriverebbe go fmt, quindi il codice formattato si può committare senza causare differenze nella CI.

Come si usa

  1. Incolla il codice Go oppure apri un file .go.
  2. Il codice formattato compare a destra mentre scrivi.
  3. Mantieni l’indentazione Tab per il codice che committerai. Scegli 2 spazi o 4 spazi quando il codice finisce in un documento, una slide o un sito che mostra i tab troppo larghi.
  4. Copia o scarica il risultato.

Se il codice non è analizzabile, lo strumento mostra il primo errore con riga e colonna, per esempio expected ')', found '{', e puoi saltare direttamente a quella riga.

Esempio

L’esempio è un breve programma compresso nel minor numero di righe possibile: import separati da punti e virgola, una struct su due righe e funzioni senza spazi attorno agli operatori. Dopo la formattazione:

  • gli import diventano un blocco tra parentesi con un package per riga;
  • i campi della struct vanno ciascuno su una riga e i loro tipi vengono allineati in colonna;
  • if u.Age<18{ diventa if u.Age < 18 { con il corpo su una riga propria;
  • i literal composti ricevono spazi dopo virgole e due punti.

Cosa cambia e cosa non cambia gofmt

gofmt cambia solo l’impaginazione. Non rinomina mai identificatori, non riordina le dichiarazioni e non rimuove gli import inutilizzati; questi compiti spettano a strumenti come goimports e go vet. Mantiene anche i tuoi a capo dove hanno un significato, quindi una lunga lista di argomenti divisa su più righe resta divisa.

I commenti vengono mantenuti e reindentati insieme al codice circostante. I commenti a fine riga su righe consecutive vengono allineati in colonna, proprio come i campi delle struct.

Suggerimenti

  • La formattazione è un modo rapido per trovare una graffa mancante: la posizione dell’errore di solito indica la prima riga dopo lo sbaglio.
  • Formatta il codice prima di condividerlo in una issue o in una review. Così i revisori possono concentrarsi su cosa fa il codice invece che sul suo aspetto.
  • Nel tuo editor, attiva “format on save” con gopls così i tuoi file corrispondono sempre a questo output.

Domande frequenti

› È il vero gofmt?

Sì. Il formattatore è il codice di gofmt della toolchain Go compilato in WebAssembly, quindi l'output è identico byte per byte a quello che `gofmt` o `go fmt` stampano sulla tua macchina.

› Mi serve la clausola package?

No. Un file completo è l'ideale, ma gofmt accetta anche un elenco di dichiarazioni o qualche istruzione, comodo per gli snippet copiati da un post del blog o da una chat.

› Perché per l'indentazione si usano i tab?

gofmt indenta sempre con i tab e allinea con gli spazi. È la convenzione di Go, e gli editor mostrano i tab con la larghezza che preferisci. Se ti servono spazi per un documento o una slide, scegli 2 o 4 spazi: vengono sostituiti solo i tab iniziali.

› Il mio codice viene caricato?

No. Il modulo WebAssembly viene scaricato una volta sola e la formattazione avviene in locale nel tuo browser.