DevToolPal
UK

Форматер Go

Форматуйте вихідний код Go за допомогою gofmt, скомпільованого у WebAssembly, просто у браузері.

Працює локально, нічого не завантажується на сервер

Параметри

Відступ

Вхідні дані

0 симв. · 0 B

Результат

0 симв. · 0 B

Що робить інструмент

Форматер Go переписує вихідний код Go в той єдиний канонічний стиль, яким користується вся спільнота Go. Вставте файл чи фрагмент — і він повернеться з відступами, пробілами, групуванням імпортів і вирівняними полями структур та коментарями за правилами gofmt.

Тут працює справжній gofmt з інструментарію Go, скомпільований у WebAssembly. Жодних наближень: ви бачите саме те, що записав би go fmt, тож відформатований код можна комітити без зайвих диффів у CI.

Як користуватися

  1. Вставте код Go або відкрийте файл .go.
  2. Відформатований код з’являється праворуч під час введення.
  3. Залиште відступ Табуляція для коду, який будете комітити. Виберіть 2 пробіли або 4 пробіли, якщо код іде в документ, на слайд чи на сайт, що показує табуляцію надто широкою.
  4. Скопіюйте або збережіть результат.

Якщо код не розбирається, інструмент показує першу помилку з рядком і стовпцем, наприклад expected ')', found '{', і ви можете одразу перейти до цього рядка.

Приклад

Приклад — коротка програма, втиснута в якомога менше рядків: імпорти, розділені крапкою з комою, структура у два рядки й функції без пробілів навколо операторів. Після форматування:

  • імпорти стають блоком у дужках, по одному пакету в рядку;
  • поля структури розміщуються в окремих рядках, а їхні типи вирівнюються в стовпчик;
  • if u.Age<18{ перетворюється на if u.Age < 18 {, а тіло переходить на окремий рядок;
  • у складених літералах з’являються пробіли після ком і двокрапок.

Що gofmt змінює, а що ні

gofmt змінює лише оформлення. Він ніколи не перейменовує ідентифікатори, не переставляє оголошення й не видаляє невикористані імпорти — це робота для інструментів на кшталт goimports і go vet. Він також зберігає ваші перенесення рядків там, де вони мають сенс, тож довгий список аргументів, розбитий на кілька рядків, лишається розбитим.

Коментарі зберігаються й отримують відступи разом із навколишнім кодом. Коментарі в кінці кількох послідовних рядків вирівнюються в стовпчик, так само як поля структур.

Поради

  • Форматування — швидкий спосіб знайти пропущену фігурну дужку: позиція помилки зазвичай вказує на перший рядок після неї.
  • Запускайте форматер, перш ніж ділитися кодом в issue чи на рев’ю. Тоді рецензенти зможуть зосередитися на тому, що код робить, а не на тому, як він виглядає.
  • Увімкніть у редакторі «format on save» через gopls, щоб ваші файли завжди збігалися з цим результатом.

Часті запитання

› Це справжній gofmt?

Так. Форматер — це код gofmt з інструментарію Go, скомпільований у WebAssembly, тож результат байт у байт збігається з тим, що виводять `gofmt` або `go fmt` на вашому комп’ютері.

› Чи потрібне оголошення package?

Ні. Найкраще вставляти повний файл, але gofmt приймає й список оголошень або кілька інструкцій — це зручно для фрагментів, скопійованих із допису в блозі чи чату.

› Чому для відступів використовується табуляція?

gofmt завжди робить відступи табуляцією, а вирівнює пробілами. Це домовленість Go, і редактори показують табуляцію будь-якої зручної вам ширини. Якщо для документа чи слайда потрібні пробіли, виберіть 2 або 4 пробіли — замінено буде лише табуляцію на початку рядків.

› Чи завантажується мій код на сервер?

Ні. Модуль WebAssembly завантажується один раз, а форматування виконується локально у вашому браузері.