CodeBlanks Logo Icon CodeBlanks

String birleştirme

push_str ve + operatörüyle stringleri birleştirirsin.

String birleştirme

Bir String'e ekleme yapmanın yolları:

let mut s = String::from("Merhaba");
s.push_str(", ");    // &str ekler
s.push('R');         // tek char ekler
s += "ust";          // &str ekler
println!("{s}");     // Merhaba, Rust

+ operatörü sol taraftaki String'in sahipliğini alır: let c = a + &b; sonrasında a kullanılamaz, b ise ödünç verildiği için kullanılabilir.

Çok parçalı birleştirme

Çok sayıda parçayı birleştirirken + zincirleri okunmaz hâle gelir. format! hiçbir argümanın sahipliğini almaz ve en okunur seçenektir; dilimler için concat ve join vardır:

let ad = "Ada";
let soyad = "Lovelace";
let tam = format!("{ad} {soyad}");
let liste = ["a", "b", "c"].join(", ");   // "a, b, c"
let bitisik = ["x", "y"].concat();        // "xy"

Uygulama Selam kur

let mut s = String::from("Merhaba"); ile başla. push_str(", "), push_str("Rust") ve push('!') çağır; sonra let t = s + " 🦀"; yap ve t'yi yazdır.

Başlangıç kodu

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

Örnek çözüm

main.rs
fn main() {
    let mut s = String::from("Merhaba");
    s.push_str(", ");
    s.push_str("Rust");
    s.push('!');
    let t = s + " 🦀";
    println!("{}", t);
}

Beklenen çıktı

Merhaba, Rust! 🦀

Soru ve cevaplar

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

1 <code>let a = String::from("x"); let b = String::from("y"); let c = a + b;</code> neden derlenmez?

  • Sağ taraf &str olmalı; a + &b yazılmalı Doğru cevap
  • a değiştirilemez
  • String'ler toplanamaz
  • Derlenir

Açıklama: + işlemi fn add(self, s: &str) imzasına sahiptir; bu yüzden ikinci operand bir referans olmalıdır.

2 Tek karakter ekle

Soru
let mut s = String::from("ok");
s.____('!');
Cevap
let mut s = String::from("ok");
s.push('!');

Açıklama: push tek bir char ekler; push_str ise &str ekler.

3 Yöntem ve argüman

Kavram Anlamı
push_str &str
push char
a + &b a'nın sahipliğini alır
format! Sahiplik almaz

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