Dilimler (Slices)

Bir dilim (slice) size daha büyük bir koleksiyonun içinden bir görüntü verir:

fn main() {
    let mut a: [i32; 6] = [10, 20, 30, 40, 50, 60];
    println!("a: {a:?}");

    let s: &[i32] = &a[2..4];

    println!("s: {s:?}");
}
  • Dilimler (slice), dilimlenmiş türden verileri ödünç alır (borrowing).
This slide should take about 10 minutes.
  • a'yı ödünç alıp (borrowing) başlangıç ​​ve bitiş indekslerini köşeli parantez içinde belirterek bir dilim (slice) oluşturuyoruz.

  • Dilim (slice) indeks 0'da başlıyorsa, Rust'ın aralık sözdizimi (range syntax) başlangıç indeksini kullanmamaya izin verir; bu, &a[0..a.len()] ve &a[..a.len()]dilimlerinin aynı olduğu anlamına gelir.

  • Aynı şey bitiş indeksi için de geçerlidir, dolayısıyla &a[2..a.len()] ve &a[2..] aynıdır.

  • Tüm bir dizinin dilimini (slice) kolayca oluşturmak için &a[..]'ı kullanabiliriz.

  • s,i32'lerin bir dilimine (slice) referanstır. s (&[i32]) türünün artık dizi uzunluğundan bahsetmediğine dikkat edin. Bu bize farklı boyutlardaki dilimler üzerinde hesaplama yapmamızı sağlar.

  • Dilimler (slice) her zaman başka bir nesneden ödünç alır (borrow). Bu örnekte a'nın en azından dilimimiz (slice) kadar 'canlı (alive)' (kapsamında) kalması gerekiyor.