Memformat kode Anda adalah cara penting untuk meningkatkan keterbacaan, konsistensi, dan kegunaannya kembali. Kode yang diformat dengan benar lebih mudah dipahami, dimodifikasi, dan dipelihara.
Salah satu fitur hebat Go adalah konvensi pemformatannya yang terdefinisi dengan baik. Anda dapat menggunakan paket format bawaan, dan perintah go fmt, untuk memformat kode Anda secara otomatis. Ini akan membantu memastikan bahwa pemrogram Go lainnya dapat membacanya semudah mungkin.
Paket Format dan Perintah fmt
Itu format package mengimplementasikan pemformatan standar untuk Buka kode sumber. Paket ini beroperasi dengan pergi format alat baris perintah untuk fleksibilitas dalam memformat kode Go.
Paket format adalah submodule dalam paket go. Inilah cara Anda dapat mengimpornya:
impor"pergi/format"
Anda dapat menelusuri dokumentasi perintah go fmt dengan menentukan membantu perintah sebelum fmt memerintah:
ayo bantu fmt
Tentukan nama file setelah perintah fmt untuk memformat file tersebut. Ini akan menyesuaikan spasi dan lekukan kode Anda agar sesuai dengan standar Go.
buka fmt main.go
Di belakang layar, go fmt adalah alias untuk perintah gofmt, khususnya:
gofmt -l -w
Tanda tersebut menyebabkan gofmt untuk menulis perubahan apa pun pada setiap file yang Anda berikan dan mencantumkan nama file yang diubahnya.
Anda dapat menambahkan -X tandai ke perintah fmt. Bendera -x membantu menulis perubahan dari formatter ke file asli.
buka fmt -x main.go
Itu -N flag berfungsi mirip dengan -x, tetapi tidak membuat perubahan. Sebagai gantinya, ini menampilkan perintah yang akan dijalankan oleh fmt tanpa -n:
pergi fmt -n main.go
Bendera memberi tahu pemformat untuk menampilkan perubahan, yang memungkinkan Anda meninjaunya terlebih dahulu sebelum menerapkannya.
Ini adalah program Go sederhana yang mengulang bilangan bulat dari nol hingga lima dan mencetak string "Hello World!".
// memformat file bernama main.go seperti yang ditunjukkan pada contoh di atas
kemasan utama
impor"fmt"
fungsiutama() {
var X int=5
untuk saya:=0;Saya fmt. Cetak("Halo Dunia!")
}
}
Memformat Kode Sumber Go
Paket format berisi a Sumber fungsi untuk memformat file Go dari program. Anda harus membaca file dan meneruskan konten sebagai argumen ke fungsi Sumber.
Fungsi Sumber akan mengembalikan konten file yang diformat yang dapat Anda tulis ke file atau yang baru.
Anda dapat membaca file dengan ReadFile fungsi dari ioutil kemasan. Fungsi ReadFile mengambil nama file dan mengembalikan konten file dan kesalahan penanganan.
fileContent, err := ioutil. File Baca("utama.pergi")
jika salah!= nol {
catatan. Fataln("Ada kesalahan saat membaca file", salah)
}
Meneruskan konten file ke fungsi Sumber mengembalikan konten file yang diformat dan kesalahan penanganan.
diformat, err := format. Sumber (fileKonten)
jika salah!= nol {
catatan. Fataln("Ada kesalahan pemformatan dengan fungsi sumber", salah)
}
Anda dapat menulis konten file yang diformat ke file dengan WriteFile fungsi dari ioutil kemasan. Fungsi WriteFile memasukkan nama file, konten, dan mode izin file, mengembalikan kesalahan apa pun. Mode izin hanya relevan jika file tidak ada, dalam hal ini WriteFile akan membuatnya.
Itu 0644 mode izin file memberikan:
- Pemilik file membaca dan menulis izin.
- Baca izin untuk pengguna lain dalam grup yang sama dengan pemilik.
- Tidak ada izin untuk pengguna lain.
err = ioutil. WriteFile("utama.pergi", diformat, 0644)
jika salah!= nol {
catatan. Fataln("Ada kesalahan saat menulis file", salah)
}
Sebagai alternatif, Anda dapat meneruskan kode sumber Go ke fungsi Sumber untuk pemformatan. Anda dapat menentukan kode dalam irisan byte menggunakan tanda centang (`):
kemasan utama
impor (
"fmt"
"pergi/format"
)fungsiutama() {
// program sederhana yang menghitung luas segitiga dengan matematika
// fungsi
diformat, err := format. Sumber([]byte(`
kemasan utama
impor(
"fmt"
"matematika"
)
fungsiutama(){
var A float64=3
var B float64=4
var C float64=5
var S float64=(a+b+c)/2
var daerah float64= matematika. Akar (s*(s-a)*(s-b)*(s-c))
fmt. Cetak("Luas segitiga adalah:",daerah)
}
`))
jika salah!= nol {
catatan. Fataln("Ada kesalahan pemformatan dengan fungsi sumber", salah)
} kalau tidak {
fmt. Cetak(rangkaian(diformat))
}
}
Saat memformat, Anda harus mengonversi irisan byte menjadi string dengan rangkaian fungsi. Ini kode sumber yang diformat.
Menyesuaikan Proses Pemformatan
Anda dapat menyesuaikan proses pemformatan dengan paket format Konfigurasi struct. Struktur Config berisi kolom tempat Anda dapat menentukan opsi format pada pembuatan instance.
impor"pergi/format"
konfigurasi := &format. Konfigurasi{
// Tabwidth mengatur jumlah spasi per tab.
Lebar tab: 8,// UseTabs menunjukkan apakah pemformat harus menggunakan tab, bukan
// spasi.
Tab Penggunaan: PALSU,// TabIndent digunakan untuk menentukan apakah indentasi awal seharusnya
// selesai menggunakan tab atau spasi.
Indentasi Tab: BENAR,// NoFinalTab menentukan apakah tab terakhir harus dihapus
// baris sebelum diformat.
NoFinalTab: BENAR,// Spasi menentukan apakah spasi harus digunakan untuk penyelarasan.
Spasi: BENAR,
// NoTrimTrailingSpace menentukan apakah harus spasi kosong
// dipangkas dari baris sebelum diformat.
NoTrimTrailingSpace: PALSU,
}
Anda dapat menggunakan bidang untuk menyesuaikan perilaku formatter Anda dengan menyetel opsi berdasarkan kebutuhan Anda.
Anda kemudian dapat menggunakan metode Sumber struct ini untuk memformat irisan byte berdasarkan konfigurasi Anda.
fungsiutama() {
fileContent, err := ioutil. File Baca("utama.pergi")// perhatikan bahwa ini adalah metode Sumber dari tipe `config`, bukan dari
// `format` paket itu sendiri meskipun fungsinya sama, Anda akan
// perlu mematuhi ini jika Anda perlu mengonfigurasi pemformat
diformat, err := config. Sumber (fileKonten)jika salah!= nol {
catatan. Fataln("Ada kesalahan pemformatan dengan tipe konfigurasi", salah)
}
ioutil. WriteFile("utama.pergi", diformat, 0644)
}
Memanggil konfigurasi. Fungsi source() seperti ini memformat isi file main.go file menggunakan opsi konfigurasi. Ini mengembalikan konten yang diformat sebagai irisan byte dan kesalahan.
Anda Dapat Memformat dan Memanipulasi String di Go
Paket format dan perintah go fmt dapat membantu Anda mengotomatiskan proses pemformatan kode.
Go juga menyediakan paket fmt untuk pemformatan string dan paket string untuk manipulasi string.
Paket fmt mengimplementasikan I/O yang diformat lebih sederhana dengan fungsi yang serupa dengan fungsi printf dan scanf C. Fungsi string mengimplementasikan fungsi sederhana untuk memanipulasi string yang disandikan UTF-8.