Özet - Dilimler
- Rust kursu
- Başlangıç
- Ders 59/115
- 5 dk
String ve dizi dilimlerini birleştirerek ilk kelimeyi bulan fonksiyon yazarsın.
Dilimler özeti
Dilim, ardışık verinin ödünç alınmış görünümüdür: &str metin için, &[T] dizi ve vektör için. Aralıklar a..b (b hariç), a..=b (dahil), ..b, a.., .. biçimindedir. String indeksleri bayt konumudur; karakter sınırı dışında panic olur, güvenli seçenek get'tir. Fonksiyon parametrelerinde dilim almak en esnek seçimdir.
Ne zaman ne seçilir?
Veriyi yalnızca okuyorsan dilim al; dönüşte girdinin bir parçasını veriyorsan dilim döndür. Yeni veri ürettiysen (birleştirme, büyük harfe çevirme) sahip olunan tür döndür: String ya da Vec<T>. Dilim kaynağından uzun yaşayamayacağı için yerel bir değişkenin dilimini döndürmek derleme hatasıdır.
Uygulama Son n eleman
fn son_n(v: &[i32], n: usize) -> &[i32] yaz; &v[v.len() - n..] döndürsün. [1, 2, 3, 4, 5] ve n = 2 için sonucu {:?} ile yazdır.
Başlangıç kodu
fn main() {
// buraya yaz
}Örnek çözüm
fn son_n(v: &[i32], n: usize) -> &[i32] {
&v[v.len() - n..]
}
fn main() {
let a = [1, 2, 3, 4, 5];
println!("{:?}", son_n(&a, 2));
}Beklenen çıktı
[4, 5]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>let v = [1, 2, 3, 4]; let s = &v[1..3];</code> için <code>s.len()</code> nedir?
- 1
- 2 Doğru cevap
- 3
- 4
Açıklama: 1..3 aralığı 1 ve 2 indekslerini kapsar: [2, 3].
2 Güvenli dilim
let s = "abc";
let x = s.____(1..5); // None
let s = "abc";
let x = s.get(1..5); // None
Açıklama: get sınır dışı aralıkta panic yerine None döndürür.
3 Tür ve anlamı
| Kavram | Anlamı |
|---|---|
&str |
Metin dilimi |
&[T] |
Eleman dilimi |
&mut [T] |
Değiştirilebilir dilim |
RangeInclusive |
a..=b |