format! makrosu
- Rust kursu
- Başlangıç
- Ders 22/115
- 4 dk
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 TLBiç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
fn main() {
// buraya yaz
}Örnek çözüm
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!("{:>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
let dosya = ____!("rapor-{}.csv", 2026);
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" |