String birleştirme
- Rust kursu
- Başlangıç
- Ders 21/115
- 4 dk
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
fn main() {
// buraya yaz
}Örnek çözüm
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
let mut s = String::from("ok");
s.____('!');
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 |