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
- Incolla il codice Go oppure apri un file
.go. - Il codice formattato compare a destra mentre scrivi.
- 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.
- 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{diventaif 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.