当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust slice.align_to用法及代码示例


本文简要介绍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-lang.org大神的英文原创作品 slice.align_to。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。