Module alloc::slice 1.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
ArrayChunks | Experimental 在 (non-overlapping) 块 (一次 |
ArrayChunksMut | Experimental 在 (non-overlapping) 可变块 (一次 |
ArrayWindows | Experimental 在切片上以重叠块 (一次 |
GroupBy | Experimental (non-overlapping) 块中由谓词分隔的切片上的迭代器。 |
GroupByMut | Experimental 在 (non-overlapping) 可变块中由谓词分隔的切片上的迭代器。 |
Chunks | 在 (non-overlapping) 块 (一次 |
ChunksExact | 在 (non-overlapping) 块 (一次 |
ChunksExactMut | 在 (non-overlapping) 可变块 (一次 |
ChunksMut | 在 (non-overlapping) 可变块 (一次 |
Iter | 不可变切片迭代器 |
IterMut | 可变切片迭代器。 |
RChunks | 在 (non-overlapping) 块 (一次 |
RChunksExact | 在 (non-overlapping) 块 (一次 |
RChunksExactMut | 从切片末尾开始,在 (non-overlapping) 可变块 (一次 |
RChunksMut | 从切片末尾开始,在 (non-overlapping) 可变块 (一次 |
RSplit | 从切片的末尾开始,由与谓词函数匹配的元素分隔的子切片上的迭代器。 |
RSplitMut | vector 的子切片上的迭代器,该迭代器由与 |
RSplitN | 在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔,从切片的末尾开始,并限于给定的拆分数。 |
RSplitNMut | 在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔,从切片的末尾开始,并限于给定的拆分数。 |
Split | 在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔。 |
SplitMut | vector 的可变子片段上的迭代器,该子片段由与 |
SplitN | 在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔,限于给定的拆分数。 |
SplitNMut | 在子切片上进行迭代的迭代器,这些子切片由与谓词函数匹配的元素分隔,限于给定的拆分数。 |
Windows | 长度为 |
Traits
Concat | Experimental
|
Join | Experimental
|
SliceIndex | 帮助程序 trait 用于索引操作。 |
Functions
range | Experimental 执行范围的边界检查。 |
from_mut | 将引用转换为 T 转换为长度为 1 的切片 (不进行复制)。 |
from_raw_parts⚠ | 根据指针和长度形成切片。 |
from_raw_parts_mut⚠ | 执行与 |
from_ref | 将引用转换为 T 转换为长度为 1 的切片 (不进行复制)。 |