本文简要介绍rust语言中 slice.align_to
的用法。
用法
pub unsafe fn align_to<U>(&self) -> (&[T], &[U], &[T])
将切片转换为另一种类型的切片,确保保持类型的对齐。
此方法将切片分为三个不同的切片:前缀切片、新类型的正确对齐的中间切片以及后缀切片。该方法可能会使中间切片成为给定类型和输入切片的最大长度,但只有算法的性能应该依赖于此,而不是其正确性。允许所有输入数据作为前缀或后缀切片返回。
当输入元素 T
或输出元素 U
的大小为零并且将返回原始切片而不拆分任何内容时,此方法无效。
安全性
对于返回的中间切片中的元素,此方法本质上是 transmute
,因此与 transmute::<T, U>
有关的所有常见警告也适用于此。
例子
基本用法:
unsafe {
let bytes: [u8; 7] = [1, 2, 3, 4, 5, 6, 7];
let (prefix, shorts, suffix) = bytes.align_to::<u16>();
// less_efficient_algorithm_for_bytes(prefix);
// more_efficient_algorithm_for_aligned_shorts(shorts);
// less_efficient_algorithm_for_bytes(suffix);
}
相关用法
- Rust slice.align_to_mut用法及代码示例
- Rust slice.as_chunks_unchecked用法及代码示例
- Rust slice.array_windows用法及代码示例
- Rust slice.as_mut_ptr用法及代码示例
- Rust slice.as_ptr_range用法及代码示例
- Rust slice.as_chunks_unchecked_mut用法及代码示例
- Rust slice.as_ptr用法及代码示例
- Rust slice.as_chunks_mut用法及代码示例
- Rust slice.array_chunks用法及代码示例
- Rust slice.as_rchunks_mut用法及代码示例
- Rust slice.as_chunks用法及代码示例
- Rust slice.array_chunks_mut用法及代码示例
- Rust slice.as_rchunks用法及代码示例
- Rust slice.sort_unstable_by_key用法及代码示例
- Rust slice.iter_mut用法及代码示例
- Rust slice.windows用法及代码示例
- Rust slice.repeat用法及代码示例
- Rust slice.group_by_mut用法及代码示例
- Rust slice.fill用法及代码示例
- Rust slice.sort_unstable_by用法及代码示例
- Rust slice.sort用法及代码示例
- Rust slice.rotate_left用法及代码示例
- Rust slice.swap_unchecked用法及代码示例
- Rust slice.get_unchecked用法及代码示例
- Rust slice.split_array_mut用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 slice.align_to。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。