fmt.Printf
- Go kursu
- Orta seviye
- Ders 53/80
- 4 dk
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şındaVerb 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.14Tablo 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
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
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
fmt.Printf("____
", 9.876) // 9.88
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 |