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).
-
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.