Bu araç ne işe yarar
Go biçimlendirici, Go kaynak kodunu tüm Go topluluğunun kullandığı tek standart stile göre yeniden yazar. Bir dosya veya kod parçası yapıştırın; gofmt’nin girintisi, boşlukları, import gruplaması ve hizalanmış struct alanları ile yorumlarıyla geri gelir.
Go araç zincirindeki gerçek gofmt’yi WebAssembly’ye derlenmiş olarak çalıştırır. Hiçbir şey yaklaşık değildir: burada gördüğünüz, go fmt komutunun yazacağının tam olarak aynısıdır; bu yüzden biçimlendirilmiş kod CI’da diff oluşturmadan commit edilebilir.
Nasıl kullanılır
- Go kodunu yapıştırın veya bir
.godosyası açın. - Siz yazarken biçimlendirilmiş kod sağ tarafta görünür.
- Commit edeceğiniz kod için Sekme girintisini koruyun. Kod bir belgeye, slayta veya sekmeleri çok geniş gösteren bir siteye gidecekse 2 boşluk veya 4 boşluk seçin.
- Sonucu kopyalayın veya indirin.
Kod ayrıştırılamazsa araç ilk hatayı satır ve sütunuyla birlikte gösterir; örneğin expected ')', found '{'. Doğrudan o satıra atlayabilirsiniz.
Örnek
Örnek, mümkün olduğunca az satıra sıkıştırılmış kısa bir programdır: noktalı virgülle ayrılmış import’lar, iki satıra yazılmış bir struct ve operatörlerin etrafında boşluk olmayan fonksiyonlar. Biçimlendirmeden sonra:
- import’lar, her satırda bir paket olan parantezli bir bloğa dönüşür;
- struct alanları kendi satırlarına yerleşir ve türleri bir sütunda hizalanır;
if u.Age<18{, gövdesi kendi satırında olacak şekildeif u.Age < 18 {olur;- bileşik değişmezler virgüllerden ve iki nokta üst üste işaretlerinden sonra boşluk alır.
gofmt neyi değiştirir, neyi değiştirmez
gofmt yalnızca düzeni değiştirir. Tanımlayıcıları asla yeniden adlandırmaz, bildirimlerin sırasını değiştirmez veya kullanılmayan import’ları kaldırmaz; bu işler goimports ve go vet gibi araçlara aittir. Ayrıca anlamlı olduğu yerlerde satır sonlarınızı korur; bu yüzden birkaç satıra böldüğünüz uzun bir argüman listesi bölünmüş olarak kalır.
Yorumlar korunur ve çevrelerindeki kodla birlikte yeniden girintilenir. Ardışık satırlardaki satır sonu yorumları, tıpkı struct alanları gibi bir sütunda hizalanır.
İpuçları
- Biçimlendirme, eksik bir süslü parantezi bulmanın hızlı bir yoludur: hata konumu genellikle hatadan sonraki ilk satırı gösterir.
- Kodu bir issue’da veya incelemede paylaşmadan önce biçimlendiriciyi çalıştırın. Böylece inceleyenler kodun nasıl göründüğüne değil, ne yaptığına odaklanabilir.
- Dosyalarınızın her zaman bu çıktıyla eşleşmesi için editörünüzde gopls ile “format on save” (kaydederken biçimlendir) özelliğini etkinleştirin.
SSS
› Bu gerçek gofmt mi?
Evet. Biçimlendirici, Go araç zincirindeki gofmt kodunun WebAssembly'ye derlenmiş hâlidir; bu yüzden çıktı, makinenizde `gofmt` veya `go fmt` komutunun yazdırdığıyla bayt bayt aynıdır.
› Bir package bildirimi gerekli mi?
Hayır. Tam bir dosya en iyisidir, ancak gofmt bir bildirim listesini veya birkaç ifadeyi de kabul eder; bu, bir blog yazısından veya sohbetten kopyalanan kod parçaları için kullanışlıdır.
› Girinti için neden sekmeler kullanılıyor?
gofmt her zaman sekmelerle girintiler ve boşluklarla hizalar. Bu Go'nun kuralıdır ve editörler sekmeleri istediğiniz genişlikte gösterir. Bir belge veya sunum slaytı için boşluğa ihtiyacınız varsa 2 veya 4 boşluk seçin; yalnızca satır başındaki sekmeler değiştirilir.
› Kodum bir yere yükleniyor mu?
Hayır. WebAssembly modülü bir kez indirilir ve biçimlendirme tarayıcınızda yerel olarak çalışır.