CodeBlanks Logo Icon CodeBlanks

format! makrosu

format! makrosuyla yeni string üretirsin.

format! makrosu

format!, println! ile aynı biçim dizgesini kullanır ama yazdırmak yerine bir String döndürür:

let urun = "Kalem";
let adet = 3;
let fiyat = 12.5;
let line = format!("{urun} x{adet} = {:.2} TL", fiyat * adet as f64);
println!("{line}");   // Kalem x3 = 37.50 TL

Biçim dizgesi derleme anında denetlenir ve argümanlar ödünç alınır; değerler kullanılmaya devam edebilir.

Konumsal ve adlı argümanlar

Argümanlar sırayla, numarayla ya da adla kullanılabilir:

format!("{0} {1} {0}", "a", "b");    // "a b a"
format!("{ad} {ad}", ad = "Ada");     // "Ada Ada"
format!("{:^7}", "ok");                // "  ok   "
format!("{:08.3}", 3.14159);           // "0003.142"
format!("{:x} {:b}", 255, 5);         // "ff 101"

Uygulama Fiş satırı

fn line(urun: &str, adet: u32, fiyat: f64) -> String yaz; format!("{urun:<8}{adet:>3} x {fiyat:6.2}") döndürsün. line("Kalem", 3, 12.5) sonucunu köşeli parantez içinde yazdır: println!("[{}]", ...).

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn line(urun: &str, adet: u32, fiyat: f64) -> String {
    format!("{urun:<8}{adet:>3} x {fiyat:6.2}")
}

fn main() {
    println!("[{}]", line("Kalem", 3, 12.5));
}

Beklenen çıktı

[Kalem     3 x  12.50]

Soru ve cevaplar

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

1 <code>format!("{:&gt;5}", "ab")</code> ne üretir?

  • "ab "
  • " ab "
  • "ab"
  • " ab" Doğru cevap

Açıklama: > sağa yaslar ve 5 karakterlik alanı soldan boşlukla doldurur; < sola, ^ ortaya yaslar.

2 Metin üret

Soru
let dosya = ____!("rapor-{}.csv", 2026);
Cevap
let dosya = format!("rapor-{}.csv", 2026);

Açıklama: format! biçimli metni String olarak döndürür.

3 Biçim ve çıktı

Kavram Anlamı
{:>5} "ab" " ab"
{:05} 42 "00042"
{:x} 255 "ff"
{0}{0} "a" "aa"

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma