當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。