CodeBlanks Logo Icon CodeBlanks

fmt.Printf

Printf ve biçim verb'lerini öğrenirsin.

fmt.Printf

fmt.Printf bir biçim dizgesi ve değerler alır; dizgedeki verb'ler (% ile başlayan yer tutucular) sırayla değerlerle doldurulur. Println'dan farklı olarak satır sonunu kendisi eklemez.

ad, yas := "Ada", 36
fmt.Printf("%s %d yaşında\n", ad, yas)
// Ada 36 yaşında

Verb ile değer türü uyuşmazsa program çökmez; çıktıya %!d(string=Ada) gibi bir uyarı yazılır. go vet bu hataları derlemeden önce yakalar.

Genişlik ve hassasiyet

Verb'in önüne genişlik ve hassasiyet eklenebilir: %8.2f en az 8 karakter genişliğinde, 2 ondalıklı sayı demektir. - sola yaslar, 0 sıfırla doldurur:

fmt.Printf("|%6d|%-6d|%06d|\n", 42, 42, 42)
// |    42|42    |000042|
fmt.Printf("%.2f\n", 3.14159)  // 3.14

Tablo biçimli çıktılar için bu alanlar çok kullanışlıdır.

Uygulama Fiyat tablosu

İki ürünü Printf ile hizalı yazdır: ad 8 karakter sola yaslı (%-8s), fiyat 7 karakter genişliğinde 2 ondalıklı (%7.2f). Ürünler: Kalem 12.5, Defter 7.

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("%-8s%7.2f\n", "Kalem", 12.5)
    fmt.Printf("%-8s%7.2f\n", "Defter", 7.0)
}

Beklenen çıktı

Kalem     12.50
Defter     7.00

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>fmt.Printf("%d\n", "on")</code> ne yazdırır?

  • 10
  • on
  • Program çöker
  • %!d(string=on) Doğru cevap

Açıklama: fmt hatalı verb'i çıktıda işaretler; çalışma anında panic olmaz. go vet bu satırı uyarır.

2 İki ondalık

Soru
fmt.Printf("____
", 9.876)  // 9.88
Cevap
fmt.Printf("%.2f
", 9.876)  // 9.88

Açıklama: %.2f sayıyı virgülden sonra 2 basamağa yuvarlar.

3 Biçim ve çıktı (42)

Kavram Anlamı
%d 42
%5d " 42"
%-5d| "42 |"
%05d 00042

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