String oluşturma
- Rust kursu
- Başlangıç
- Ders 20/115
- 4 dk
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 metneto_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
fn main() {
// buraya yaz
}Örnek çözüm
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
let s = 2026.____();
println!("{}", s.len()); // 4
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" |