CodeBlanks Logo Icon CodeBlanks

String oluşturma

String::new, String::from ve to_string yöntemlerini öğrenirsin.

String oluşturma

Bir String oluşturmanın birkaç eşdeğer yolu vardır:

let a = String::new();              // boş
let b = String::from("Rust");
let c = "Rust".to_string();
let d: String = "Rust".into();
let e = 42.to_string();             // sayıdan metne

to_string, Display uygulayan her türde çalışır. Boyut biliniyorsa String::with_capacity(n) tekrar tekrar bellek ayırmayı önler.

String ve &str arasında geçiş

String'den &str almak ucuzdur (kopya yok): &s, s.as_str() ya da &s[..]. &str'den String üretmek ise yeni bellek ayırır (to_string, to_owned). Bu yüzden bir değeri saklaman gerekmedikçe &str ile çalışmak daha verimlidir.

Uygulama Metin oluştur

let mut s = String::with_capacity(16); oluştur. s.push_str("Yıl: "); ve s.push_str(&2026.to_string()); ekle; s'yi ve s.len() değerini yazdır.

Başlangıç kodu

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

Örnek çözüm

main.rs
fn main() {
    let mut s = String::with_capacity(16);
    s.push_str("Yıl: ");
    s.push_str(&2026.to_string());
    println!("{} {}", s, s.len());
}

Beklenen çıktı

Yıl: 2026 10

Soru ve cevaplar

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

1 <code>String::from("a")</code> ile <code>"a".to_string()</code> arasındaki fark nedir?

  • from değiştirilemez
  • Sonuç aynıdır; ikisi de yeni bir String oluşturur Doğru cevap
  • to_string &str döndürür
  • from daha yavaştır

Açıklama: İkisi de heap'te sahip olunan bir String üretir; hangisinin kullanılacağı çoğunlukla zevk meselesidir.

2 Sayıdan metne

Soru
let s = 2026.____();
println!("{}", s.len());  // 4
Cevap
let s = 2026.to_string();
println!("{}", s.len());  // 4

Açıklama: to_string Display uygulayan bir değerden String üretir.

3 İfade ve sonuç

Kavram Anlamı
String::new() Boş String
"a".to_string() Yeni String
s.as_str() &str (kopyasız)
42.to_string() "42"

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