Зрізи
Зріз дає змогу поглянути на більшу колекцію:
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має залишатися ‘живим’ (в області застосування) принаймні стільки ж, скільки і наш зріз.