Skip to content

Files

Latest commit

5ae4a38 · Jul 26, 2021

History

History
31 lines (22 loc) · 929 Bytes

slice.md

File metadata and controls

31 lines (22 loc) · 929 Bytes

Slice types

Syntax
SliceType :
   [ Type ]

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:

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