CodeBlanks Logo Icon CodeBlanks

fmt.Sprintf

Sprintf ile biçimli string döndürmeyi öğrenirsin.

fmt.Sprintf

Sprintf, Printf ile aynı biçimlendirmeyi yapar ama sonucu ekrana yazmak yerine string olarak döndürür. Mesaj, anahtar, dosya adı üretmek için kullanılır:

dosya := fmt.Sprintf("rapor-%04d-%02d.csv", 2026, 3)
// rapor-2026-03.csv

Ailenin üç üyesi: Print (stdout), Fprint (verilen Writer), Sprint (string). Her birinin …f ve …ln türevleri vardır.

Sprint ve Sprintln farkı

Sprint iki string olmayan değer arasına boşluk koyar, string'ler arasına koymaz; Sprintln her değer arasına boşluk ve sona satır sonu ekler:

fmt.Sprint("a", "b", 1, 2)    // "ab1 2"
fmt.Sprintln("a", "b", 1, 2)  // "a b 1 2\n"

Okunur ve öngörülebilir çıktı için genellikle Sprintf tercih edilir.

Uygulama Dosya adı üret

dosyaAdi(yil, ay int, tur string) string yaz; "rapor-2026-03.csv" biçiminde ad üretsin (ay iki haneli). dosyaAdi(2026, 3, "csv") sonucunu yazdır.

Başlangıç kodu

main.go
package main

import "fmt"

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
package main

import "fmt"

func dosyaAdi(yil, ay int, tur string) string {
    return fmt.Sprintf("rapor-%d-%02d.%s", yil, ay, tur)
}

func main() {
    fmt.Println(dosyaAdi(2026, 3, "csv"))
}

Beklenen çıktı

rapor-2026-03.csv

Soru ve cevaplar

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

1 Sıcak bir döngüde tek bir sayıyı string'e çevirmek için hangisi daha hızlıdır?

  • string(n)
  • strconv.Itoa(n) Doğru cevap
  • fmt.Sprintf("%d", n)
  • fmt.Sprint(n)

Açıklama: Sprintf biçim dizgesini ayrıştırır ve değeri arayüze kutular; strconv doğrudan dönüştürür. string(n) ise sayıyı bir rune'a çevirir, rakam üretmez.

2 Metin üret

Soru
anahtar := fmt.____("kullanici:%d", id)
Cevap
anahtar := fmt.Sprintf("kullanici:%d", id)

Açıklama: Sprintf biçimli metni string olarak döndürür.

3 Fonksiyon ve hedef

Kavram Anlamı
Printf Standart çıktı
Fprintf Verilen io.Writer
Sprintf Dönen string
Errorf Dönen error

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