Зрізи
Зріз дає змогу поглянути на більшу колекцію:
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:?}"); }
- Зрізи запозичують дані зі зрізаного типу.
This slide should take about 10 minutes.
-
Ми створюємо зріз, запозичуючи
a
та вказуючи початковий і кінцевий індекси в дужках. -
Якщо зріз починається з індексу 0, синтаксис діапазону Rust дозволяє нам відкинути початковий індекс, тобто
&a[0..a.len()]
і&a[..a.len()]
ідентичні. -
Теж саме стосується останнього індексу, тому
&a[2..a.len()]
і&a[2..]
ідентичні. -
Щоб легко створити повний зріз масиву, ми можемо використовувати
&a[..]
. -
s
є посиланням на зрізi32
. Зверніть увагу, що типs
(&[i32]
) більше не згадує довжину масиву. Це дозволяє нам виконувати обчислення на зрізах різного розміру. -
Зрізи завжди запозичуються з іншого об'єкта. У цьому прикладі
a
має залишатися 'живим' (в області застосування) принаймні стільки ж, скільки і наш зріз.