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