Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Типы срезов

Syntax
SliceType[ Type ]

Срез — это динамически sized тип, представляющий “вид” в последовательность элементов типа T. Тип среза записывается как [T].

Типы срезов обычно используются через типы указателей. Например:

  • &[T]: “разделяемый срез”, часто называемый просто “срезом”. Он не владеет данными, на которые указывает; он заимствует их.
  • &mut [T]: “изменяемый срез”. Он изменяемо заимствует данные, на которые указывает.
  • Box<[T]>: “упакованный срез”

Примеры:

#![allow(unused)]
fn main() {
// Массив в куче, приведенный к срезу
let boxed_array: Box<[i32]> = Box::new([1, 2, 3]);

// (Разделяемый) срез массива
let slice: &[i32] = &boxed_array[..];
}

Все элементы срезов всегда инициализированы, и доступ к срезу всегда проверяется на границы в безопасных методах и операторах.