CodeBlanks Logo Icon CodeBlanks

Özet - fmt paketi

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

main.go
package main

import "fmt"

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
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

Soru
fmt.Printf("%d = %____x
", 255)
Cevap
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

Orta seviye bölümündeki tüm dersler