1.0.0[][src]Module alloc::slice

A dynamically-sized view into a contiguous sequence, [T].

See also the slice primitive type.

Slices are a view into a block of memory represented as a pointer and a length.

// slicing a Vec
let vec = vec![1, 2, 3];
let int_slice = &vec[..];
// coercing an array to a slice
let str_slice: &[&str] = &["one", "two", "three"];
Run

Slices are either mutable or shared. The shared slice type is &[T], while the mutable slice type is &mut [T], where T represents the element type. For example, you can mutate the block of memory that a mutable slice points to:

let x = &mut [1, 2, 3];
x[1] = 7;
assert_eq!(x, &[1, 7, 3]);
Run

Here are some of the things this module contains:

Structs

There are several structs that are useful for slices, such as Iter, which represents iteration over a slice.

Trait Implementations

There are several implementations of common traits for slices. Some examples include:

Iteration

The slices implement IntoIterator. The iterator yields references to the slice elements.

let numbers = &[0, 1, 2];
for n in numbers {
    println!("{} is a number!", n);
}
Run

The mutable slice yields mutable references to the elements:

let mut scores = [7, 8, 9];
for score in &mut scores[..] {
    *score += 1;
}
Run

This iterator yields mutable references to the slice's elements, so while the element type of the slice is i32, the element type of the iterator is &mut i32.

Structs

Chunks
ChunksExact
ChunksExactMut
ChunksMut
Iter
IterMut
RChunks
RChunksExact
RChunksExactMut
RChunksMut
RSplit
RSplitMut
RSplitN
RSplitNMut
Split
SplitMut
SplitN
SplitNMut
Windows
ArrayChunksExperimental
ArrayChunksMutExperimental
ArrayWindowsExperimental

Traits

SliceIndex
ConcatExperimental

Helper trait for [T]::concat.

JoinExperimental

Helper trait for [T]::join

Functions

from_mut
from_raw_parts
from_raw_parts_mut
from_ref
check_rangeExperimental