Module alloc::slice1.0.0[][src]

Expand description

动态大小的视图到一个连续的序列, [T].

See also the slice primitive type.

切片是一个内存块的视图,表示为一个指针和一个长度。

// 切片 Vec
let vec = vec![1, 2, 3];
let int_slice = &vec[..];
// 将数组强制转换为切片
let str_slice: &[&str] = &["one", "two", "three"];
Run

切片是可变的或共享的。 共享切片类型为 &[T],而可变切片类型为 &mut [T],其中 T 表示元素类型。 例如,您可以更改可变切片所指向的内存块:

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

以下是此模块包含的一些内容:

Structs

有几种结构切片可用于切片,例如 Iter,它表示切片上的迭代。

Trait 实现

切片具有常见的 traits 的几种实现。一些示例包括:

Iteration

切片实现 IntoIterator。迭代器产生对切片元素的引用。

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

可变切片对以下元素产生了可变引用:

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

此迭代器产生对切片元素的可变引用,因此,当切片的元素类型为 i32 时,迭代器的元素类型为 &mut i32

Structs

ArrayChunksExperimental

在 (non-overlapping) 块 (一次 N 元素) 中的切片上进行迭代,从切片的开头开始。

ArrayChunksMutExperimental

在 (non-overlapping) 可变块 (一次 N 元素) 中的切片上进行迭代,从切片的开头开始。

ArrayWindowsExperimental

在切片上以重叠块 (一次 N 个元素) 的方式在切片上进行窗口化的迭代器,从切片的开头开始

GroupByExperimental

(non-overlapping) 块中由谓词分隔的切片上的迭代器。

GroupByMutExperimental

在 (non-overlapping) 可变块中由谓词分隔的切片上的迭代器。

Chunks

在 (non-overlapping) 块 (一次 chunk_size 元素) 中的切片上进行迭代,从切片的开头开始。

ChunksExact

在 (non-overlapping) 块 (一次 chunk_size 元素) 中的切片上进行迭代,从切片的开头开始。

ChunksExactMut

在 (non-overlapping) 可变块 (一次 chunk_size 元素) 中的切片上进行迭代,从切片的开头开始。

ChunksMut

在 (non-overlapping) 可变块 (一次 chunk_size 元素) 中的切片上进行迭代,从切片的开头开始。

Iter

不可变切片迭代器

IterMut

可变切片迭代器。

RChunks

在 (non-overlapping) 块 (一次 chunk_size 元素) 中的切片上进行迭代,从切片的末尾开始。

RChunksExact

在 (non-overlapping) 块 (一次 chunk_size 元素) 中的切片上进行迭代,从切片的末尾开始。

RChunksExactMut

从切片末尾开始,在 (non-overlapping) 可变块 (一次 chunk_size 个元素) 中的切片上进行迭代。

RChunksMut

从切片末尾开始,在 (non-overlapping) 可变块 (一次 chunk_size 个元素) 中的切片上进行迭代。

RSplit

从切片的末尾开始,由与谓词函数匹配的元素分隔的子切片上的迭代器。

RSplitMut

vector 的子切片上的迭代器,该迭代器由与 pred 匹配的元素分隔,从切片的末尾开始。

RSplitN

在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔,从切片的末尾开始,并限于给定的拆分数。

RSplitNMut

在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔,从切片的末尾开始,并限于给定的拆分数。

Split

在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔。

SplitMut

vector 的可变子片段上的迭代器,该子片段由与 pred 匹配的元素分隔。

SplitN

在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔,限于给定的拆分数。

SplitNMut

在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔,限于给定的拆分数。

Windows

长度为 size 的重叠子切片上的迭代器。

Traits

ConcatExperimental

[T]::concat 的辅助程序 trait。

JoinExperimental

[T]::join 的辅助 trait

SliceIndex

帮助程序 trait 用于索引操作。

Functions

rangeExperimental

执行范围的边界检查。

from_mut

将引用转换为 T 转换为长度为 1 的切片 (不进行复制)。

from_raw_parts

根据指针和长度形成切片。

from_raw_parts_mut

执行与 from_raw_parts 相同的功能,除了返回可变切片。

from_ref

将引用转换为 T 转换为长度为 1 的切片 (不进行复制)。