Lewati ke konten utama

Pemformat Go

API reference

Format dan rapikan kode sumber Go — indentasi dengan tab berdasarkan kedalaman kurung kurawal dan kurung, penempatan kurung kurawal buka yang wajib di baris yang sama, spasi operator dan koma yang tidak ambigu, spasi pada titik dua di literal komposit, serta pengurutan impor pustaka standar dan pihak ketiga secara opsional — dengan string `backtick` mentah dan komentar tetap utuh byte demi byte.

Input

Drop a file or browse
One file · text
Atau

Opsi Pemformatan

Output

Kode Go yang Telah Diformat
 
Apakah ini membantu?

Cara lain menggunakan alat ini

REST API

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"
  }'

Ganti dengan kunci Anda sendiri dari akun Anda. Bidang alat menjadi isi permintaan — tanpa pembungkus.

Tanyakan ke agen AI

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

YOUR_INPUT_HERE

Tempelkan ini ke agen mana pun yang terhubung ke server MCP IOTools, lalu tambahkan input Anda.

Widget sematan

<iframe
  src="https://iotools.cloud/embed/go-formatter/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Pemformat 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>

Tempelkan ini di halaman Anda sendiri — gratis, tanpa kunci, cukup tautan balik.

Biaya per panggilan API/MCPMulai dari 5 kredit
Butuh kredit lebih?Lihat harga

Juga tersedia melalui

Panduan

Tempel Go yang berantakan dan dapatkan kembali kode sumber yang bersih dan sesuai konvensi gofmt — seketika, di browser Anda. Pemformat Go mengindentasi ulang dengan tab, memindahkan setiap kurung kurawal buka ke baris yang sama dengan if/for/func/struct yang dimilikinya, merapikan spasi di sekitar operator dan koma, serta dapat mengurutkan dan mengelompokkan impor Anda menjadi blok pustaka standar dan pihak ketiga — sambil membiarkan string mentah `backtick` dan komentar sepenuhnya utuh.

Mengapa tab, dan mengapa kurung kurawal tidak pernah berpindah

Dua hal tentang pemformatan Go sebenarnya bukan pilihan gaya — keduanya adalah konvensi bahasa itu sendiri. Indentasi selalu berupa tab, bukan spasi; alat ini tidak menawarkan opsi spasi, karena gofmt juga tidak. Dan kurung kurawal buka tetap berada di baris yang sama dengan kata kunci yang memilikinya: Go melakukan penyisipan titik koma otomatis di akhir baris, sehingga { yang berdiri sendiri di barisnya dapat secara diam-diam mengubah makna kode, bukan hanya tampilannya. Alat ini selalu menggabungkan kembali kurung kurawal yang salah tempat ke baris sebelumnya.

Cara menggunakannya

Tempel kode sumber Go Anda, atau unggah file .go. Aktifkan Urutkan & kelompokkan impor jika Anda ingin blok import diurutkan ulang menjadi grup pustaka standar dan grup pihak ketiga, masing-masing diurutkan secara alfabetis. Salin hasilnya, atau unduh sebagai formatted.go. Pemformatan berjalan otomatis saat Anda mengetik atau mengubah opsi.

Yang dinormalisasi

  • Indentasi — tab, berdasarkan kedalaman kurung kurawal dan kurung. case/default menjorok satu tingkat ke kiri dari badan switch-nya.
  • Penempatan kurung kurawal — baris yang hanya berisi { selalu digabungkan ke baris sebelumnya.
  • Spasi operator — operator biner yang tidak ambigu mendapat spasi tunggal di kedua sisinya: :=, ==, !=, <=, >=, &&, ||, <<, >>, &^, =, dan bentuk penugasan majemuk.
  • Spasi koma dan titik koma — tanpa spasi sebelumnya, satu spasi sesudahnya.
  • Titik dua pada literal komposit — User{Name:"x"} menjadi User{Name: "x"}, sementara titik dua pada slice/indeks tetap rapat (s[1:3]). Ini adalah disambiguasi yang nyata, bukan tebakan: alat ini melacak tipe kurung terdalam yang sedang terbuka di seluruh file, dan hanya memberi spasi pada titik dua ketika kurung tersebut adalah {, tidak pernah [.
  • struct{, interface{, dan header pernyataan tanpa kurung (if x > 0{, for i := range xs{) mendapat spasi sebelum kurung kurawal, begitu pula tanda tangan fungsi seperti func f() error{.
  • Pengurutan impor (opsional) — grup pustaka standar dan pihak ketiga, masing-masing diurutkan secara alfabetis, dipisahkan oleh baris kosong.
  • Baris kosong — dipadatkan menjadi paling banyak satu baris berturut-turut, tidak ada setelah { maupun tepat sebelum }, dan tepat satu disisipkan sebelum func/type/var/const tingkat atas.

Yang sengaja dibiarkan

  • +, -, *, & unary vs. biner, dan operator channel <- (biner pada pengiriman, prefiks unary rapat pada penerimaan). Membedakannya membutuhkan parsing sungguhan, sehingga spasi yang ada tetap dipertahankan.
  • Pemotongan baris — tidak ada yang pernah dialirkan ulang menjadi lebih banyak atau lebih sedikit baris daripada yang Anda berikan.
  • Apa pun di dalam string. String mentah `...` dipertahankan **byte demi byte** — termasuk baris baru, indentasi, kurung kurawal, dan titik dua — karena sering dipakai untuk SQL dan templat. Tag struct (`json:"name"`) juga tidak diubah di dalamnya.
  • Komentar. Komentar // maupun /* */, termasuk komentar blok multibaris, disalin apa adanya.

Apakah sama dengan gofmt?

Tidak — ini adalah pemformat teks tanpa dependensi yang berjalan sepenuhnya di browser Anda, bukan parser Go sungguhan. gofmt membangun pohon sintaks lengkap; alat ini bekerja pada teks yang sudah ditokenisasi, yang menghasilkan tab yang benar, penempatan kurung kurawal yang benar, dan spasi yang wajar tanpa perlu memasang Go.

Apakah kode saya privat?

Sepenuhnya. Semua pemformatan dilakukan secara lokal di browser Anda — sumber Anda tidak pernah dikirim ke server, dicatat, atau disimpan.

gogolanggofmtcode formatterbeautifyindenttabsimports

Suka alat-alatnya? Hilangkan iklannya.

Satu kali pembayaran menghapus semua iklan dari akun Anda, selamanya. Tanpa langganan, tanpa pelacakan.