Slice types
A slice is a dynamically sized type representing a âviewâ into a sequence of elements of type T. The slice type is written as [T].
Slice types are generally used through pointer types. For example:
&[T]: a âshared sliceâ, often just called a âsliceâ. It doesnât own the data it points to; it borrows it.&mut [T]: a âmutable sliceâ. It mutably borrows the data it points to.Box<[T]>: a âboxed sliceâ
Examples:
#![allow(unused)]
fn main() {
// A heap-allocated array, coerced to a slice
let boxed_array: Box<[i32]> = Box::new([1, 2, 3]);
// A (shared) slice into an array
let slice: &[i32] = &boxed_array[..];
}
All elements of slices are always initialized, and access to a slice is always bounds-checked in safe methods and operators.