Kodunuzu biçimlendirmek, okunabilirliğini, tutarlılığını ve yeniden kullanılabilirliğini geliştirmenin önemli bir yoludur. Düzgün biçimlendirilmiş kodun anlaşılması, değiştirilmesi ve bakımı daha kolaydır.
Go'nun harika özelliklerinden biri, iyi tanımlanmış biçimlendirme kurallarıdır. Kodunuzu otomatik olarak biçimlendirmek için yerleşik biçim paketini ve go fmt komutunu kullanabilirsiniz. Bu, diğer Go programcılarının onu olabildiğince kolay okuyabilmelerini sağlamaya yardımcı olacaktır.
Format Paketi ve fmt Komutu
bu biçim paket için standart biçimlendirmeyi uygular Kaynak koduna git. Paket ile birlikte çalışır formata git Go kodunu biçimlendirmede esneklik için komut satırı aracı.
Biçim paketi, go paketindeki bir alt modüldür. Bunu nasıl içe aktarabileceğiniz aşağıda açıklanmıştır:
içe aktarmak"git/biçimlendir"
Belirterek go fmt komutunun belgelerine göz atabilirsiniz. yardım komuttan önce fmt emretmek:
git yardım fmt
Bu dosyayı biçimlendirmek için fmt komutundan sonra bir dosya adı belirtin. Bu, kodunuzun boşluklarını ve girintilerini Go standartlarına uyacak şekilde ayarlayacaktır.
fmt main.go'ya git
Perde arkasında go fmt, gofmt komutunun diğer adıdır, özellikle:
gofmt -l -w
Bu bayraklar, gofmt'nin sağladığınız her dosyaya herhangi bir değişikliği yazmasına ve değiştirdiği dosyaların adlarını listelemesine neden olur.
ekleyebilirsiniz -X fmt komutunu işaretleyin. -x bayrağı, biçimlendiriciden orijinal dosyaya değişikliklerin yazılmasına yardımcı olur.
git fmt -x ana.go
bu -N flag, -x'e benzer şekilde çalışır, ancak değişiklik yapmaz. Bunun yerine, go fmt'nin -n olmadan çalışacağı komutları görüntüler:
git fmt -n ana.go
İşaret, biçimlendiriciye değişiklikleri göstermesini söyler, bu da onları uygulamadan önce gözden geçirmenize olanak tanır.
İşte sıfırdan beşe kadar tamsayılar arasında dolaşan ve "Merhaba Dünya!" dizesini yazdıran basit bir Go programı.
// main.go adlı bir dosyayı yukarıdaki örnekte gösterildiği gibi biçimlendiriyoruz
paket ana
içe aktarmak"fmt"
işlevana() {
var X int=5
için ben:=0;Ben fmt. Yazdır("Selam Dünya!")
}
}
Go Kaynak Kodunu Biçimlendirme
biçim paketi içerir Kaynak Go dosyalarını programlardan biçimlendirme işlevi. Dosyayı okumanız ve içeriği argüman olarak Kaynak işlevine iletmeniz gerekecek.
Kaynak işlevi, dosyaya yazabileceğiniz biçimlendirilmiş dosya içeriğini veya yenisini döndürür.
ile dosyaları okuyabilirsiniz. Dosyayı Oku işlevi ioutil paket. ReadFile işlevi, dosya adını alır ve dosya içeriğini ve işleme için bir hata döndürür.
fileContent, hata := ioutil. Dosyayı Oku("ana. git")
eğer hata!= sıfır {
kayıt. Ölümcül("Dosya okunurken bir hata oluştu", hata)
}
Dosya içeriğinin Kaynak işlevine iletilmesi, biçimlendirilmiş dosya içeriğini ve işleme için bir hata döndürür.
formatlanmış, err := format. Kaynak (fileContent)
eğer hata!= sıfır {
kayıt. Ölümcül("Kaynak işleviyle ilgili bir biçimlendirme hatası oluştu", hata)
}
Biçimlendirilmiş dosya içeriğini şu dosyaya yazabilirsiniz: Dosya Yaz işlevi ioutil paket. WriteFile işlevi, dosya adını, içeriğini ve dosya izin modu, herhangi bir hata (lar) döndürüyor. İzin modu yalnızca dosya yoksa geçerlidir, bu durumda WriteFile dosyayı oluşturur.
bu 0644 dosya izin modu şunları verir:
- Dosya sahibi okuma ve yazma izinleri.
- Sahiple aynı gruptaki diğer kullanıcılara okuma izinleri.
- Diğer kullanıcılara izin yok.
hata = ioutil. Dosya Yaz("ana. git", biçimlendirilmiş, 0644)
eğer hata!= sıfır {
kayıt. Ölümcül("Dosya yazılırken bir hata oluştu", hata)
}
Alternatif olarak, Go kaynak kodunu biçimlendirme için Kaynak işlevine iletebilirsiniz. İşaretleri kullanarak bir bayt dilimindeki kodu belirtebilirsiniz (`):
paket ana
içe aktarmak (
"fmt"
"git/biçimlendir"
)işlevana() {
// matematik ile bir üçgenin alanını hesaplayan basit program
// işlev
formatlanmış, err := format. Kaynak([]bayt(`
paket ana
içe aktarmak(
"fmt"
"matematik"
)
işlevana(){
var A şamandıra64=3
var B şamandıra64=4
var C şamandıra64=5
var S şamandıra64=(a+b+c)/2
var alan şamandıra64= matematik. Sqrt (s*(s-a)*(s-b)*(s-c))
fmt. Yazdır("Üçgenin alanı: ",alan)
}
`))
eğer hata!= sıfır {
kayıt. Ölümcül("Kaynak işleviyle ilgili bir biçimlendirme hatası oluştu", hata)
} başka {
fmt. Yazdır(sicim(biçimlendirilmiş))
}
}
Biçimlendirmede, bayt dilimini şu komutla dizeye dönüştürmeniz gerekir: sicim işlev. İşte biçimlendirilmiş kaynak kodu.
Biçimlendirme İşlemini Özelleştirme
Biçimlendirme sürecini, biçim paketinin özellikleriyle özelleştirebilirsiniz. Yapılandırma yapı Config yapısı, somutlaştırmada biçim seçeneklerini belirtebileceğiniz alanları içerir.
içe aktarmak"git/biçimlendir"
yapılandırma := &format. yapılandırma{
// Sekme genişliği, sekme başına boşluk sayısını ayarlar.
sekme genişliği: 8,// UseTabs, biçimlendiricinin sekme yerine sekme kullanıp kullanmayacağını belirtir
// boşluklar.
Sekmeleri Kullan: YANLIŞ,// TabIndent, ilk girintinin aynı olup olmayacağını belirlemek için kullanılır.
// sekmeler veya boşluklar kullanılarak yapılır.
Sekme Girintisi: doğru,// NoFinalTab, son sekmenin kaldırılıp kaldırılmayacağını belirtir
// biçimlendirilmeden önceki satırlar.
Son Sekme Yok: doğru,// Boşluklar, hizalama için boşluk kullanılıp kullanılmayacağını belirtir.
Boşluklar: doğru,
// NoTrimTrailingSpace, sondaki boşluk olup olmayacağını belirtir
// biçimlendirilmeden önce satırlardan kırpılacak.
Kırpma YokTrailingSpace: YANLIŞ,
}
Seçenekleri gereksinimlerinize göre ayarlayarak biçimlendiricinizin davranışını özelleştirmek için alanları kullanabilirsiniz.
Daha sonra yapılandırmanıza göre bir bayt dilimini biçimlendirmek için bu yapının Kaynak yöntemini kullanabilirsiniz.
işlevana() {
fileContent, hata := ioutil. Dosyayı Oku("ana. git")// bunun "config" türünde bir Kaynak yöntemi olduğunu unutmayın,
// `format` paketinin kendisi, işlevsellik aynı olmasına rağmen,
// biçimlendiriciyi yapılandırmanız gerekiyorsa buna uymanız gerekir
biçimlendirilmiş, hata := yapılandırma. Kaynak (fileContent)eğer hata!= sıfır {
kayıt. Ölümcül("Yapılandırma türünde bir biçimlendirme hatası oluştu", hata)
}
iutil. Dosya Yaz("ana. git", biçimlendirilmiş, 0644)
}
Yapılandırmayı çağırmak. Bunun gibi Source() işlevi, içeriğini biçimlendirir. ana.git yapılandırma seçeneklerini kullanarak dosya. Biçimlendirilmiş içeriği bir bayt dilimi ve bir hata olarak döndürür.
Dizeyi Go'da Biçimlendirebilir ve İşleyebilirsiniz
format package ve go fmt komutu, kod formatlama işleminizi otomatikleştirmenize yardımcı olabilir.
Go ayrıca dizi formatlaması için bir fmt paketi ve dizi işleme için bir dizi paketi sağlar.
fmt paketi, C'nin printf ve scanf işlevlerine benzer işlevlerle daha basit biçimlendirilmiş G/Ç uygular. Dizeler işlevi, UTF-8 kodlu dizeleri işlemek için basit işlevleri uygular.