Modül dersleri (5/5)
Fmt ile giriş/çıkış
Standart kütüphanenin fmt paketi, yazdırmak için ana aracınızdır.
konsol, dizeleri biçimlendirme ve girişi okuma. Eğer kullandıysanız
printf C'de kendinizi evinizdeymiş gibi hissedeceksiniz, ancak biraz ekstra incelikle
%v ve %T fiilleri sayesinde.
Print, Println, Printf: üç işlev, üç davranış
fmt.Print("ciao ", "mondo") // "ciao mondo" (niente newline finale)
fmt.Println("ciao", "mondo") // "ciao mondo\n" (newline + spazi tra argomenti)
fmt.Printf("eta=%d\n", 36) // "eta=36\n" (format string esplicita)Her zaman kullanacağınız fiiller
| Fiil | Ne yazdırıyor | Örnek |
|---|---|---|
%v | "varsayılan değer" — her türde çalışır | {Ada 36} |
%+v | %v gibi ancak yapılarda alan adları var | {Name:Ada Age:36} |
%#v | Değerin "Go-sözdizimi" gösterimi | main.User{Name:"Ada", Age:36} |
%T | değerin türü | float64 |
%d | 10 tabanındaki tamsayı | 42 |
%f | şamandıra | 3.140000 |
%.2f | 2 ondalık sayıyla kayan | 3.14 |
%s | dize | Ada |
%q | "alıntılanan" dize (tırnak işaretleri ve kaçışlarla) | "Ada\n" |
%t | bool | true |
%x | onaltılık (küçük harf) | 2a |
%b | ikili | 101010 |
u := struct{ Name string; Age int }{"Ada", 36}
fmt.Printf("%v\n", u) // {Ada 36}
fmt.Printf("%+v\n", u) // {Name:Ada Age:36}
fmt.Printf("%T\n", 3.14) // float64Sprintf: dizeleri yazdırmadan oluşturma
Printf ile aynı arayüz, ancak sonuç size bir
string:
msg := fmt.Sprintf("L'utente %s ha %d anni", "Ada", 36)
fmt.Println(msg) // L'utente Ada ha 36 anniMesajlar, günlükler ve hatalar oluşturmak için sürekli olarak kullanacaksınız.
Errorf: dizeler + hata sarma
fmt.Errorf, Printf tarzı biçimlendirmeye sahip bir error oluşturur. ile
özel fiil %w mevcut bir hatayı korumak için sarma yapabilirsiniz
zincir (bunu Arayüzler modülünde derinlemesine ele alacağız):
if _, err := os.Open("missing"); err != nil {
return fmt.Errorf("apertura config: %w", err)
}Sıra sende
Fmt.Println'i kullanarak 'ciao mondo' dizesini yazdırın.
İpucu göster
'fmt.Println' bir dize alır ve yeni satırın kendisini ekler.
3 denemeden sonra çözüm mevcut
Tam sayı için %d fiilini kullanarak 'eta=36' ve ardından yeni satırı yazdırmak için fmt.Printf'i kullanın.
İpucu göster
'Printf' yeni satır eklemez: biçim dizesine '\\n' eklemeniz gerekir.
3 denemeden sonra çözüm mevcut
Hangi fiil bir değerin dinamik TYPE'ını yazdırır?
fmt.Printf("?\n", 3.14)Özet
Print/Println/Printfboşluklar ve yeni satırlar bakımından farklılık gösterir.%vher türde çalışan joker karakterdir;%+valan adlarını gösterir.%Ttürü yazdırır (hızlı hata ayıklama için kullanışlıdır).Sprintfdizeleri oluşturur;Errorfsarmalamayla ilgili hatalar oluşturur (%w).Printfyeni satır EKLEMEZ: bunu biçim dizesine kendiniz yazın.