Özet - fmt paketi
- Go kursu
- Orta seviye
- Ders 58/80
- 4 dk
Printf, Sprintf ve Errorf'i birleştirerek bir raporlayıcı yazarsın.
fmt paketi özeti
Üç aile, üç hedef: Print* → stdout, Fprint* → io.Writer, Sprint* → string; ayrıca Errorf → error. Verb'ler: %v %+v %#v %T genel, %d %x %b tamsayı, %s %q metin, %f %.2f %e ondalık. Genişlik/hizalama: %8s, %-8s, %08d. Kendi türlerin için String(), hatalar için %w.
Bağımsız değişken indeksi
Aynı değeri birden çok kez kullanmak için %[n] biçimi argümana numarasıyla başvurur:
fmt.Printf("%[1]d onluk = %[1]x onaltılık = %[1]b ikili\n", 10)
// 10 onluk = a onaltılık = 1010 ikiliÇeviri dizgelerinde kelime sırası dile göre değiştiğinde de kullanışlıdır.
Uygulama Sayı tabanları
Tek bir Printf ve argüman indeksleriyle 42 sayısını onluk, onaltılık ve ikili yazdır: "42 2a 101010".
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func main() {
fmt.Printf("%[1]d %[1]x %[1]b\n", 42)
}Beklenen çıktı
42 2a 101010
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir değerin hem alan adlarını hem tür adını görmek için hangisi kullanılır?
- %s
- %d
- %#v Doğru cevap
- %v
Açıklama: %#v değeri Go sözdizimiyle yazar: main.Kisi{Ad:"Ada", Yas:36}. %+v alan adlarını gösterir ama türü göstermez.
2 Aynı argüman
fmt.Printf("%d = %____x
", 255)
fmt.Printf("%d = %[1]x
", 255)
Açıklama: %[1]x birinci argümanı yeniden kullanarak onaltılık yazar.
3 Grubun özeti
| Kavram | Anlamı |
|---|---|
Sprintf |
string üretir |
Fprintf |
Writer'a yazar |
Errorf + %w |
Hata sarar |
String() |
Özel gösterim |