本文簡要介紹rust語言中 slice.swap_with_slice
的用法。
用法
pub fn swap_with_slice(&mut self, other: &mut [T])
將 self
中的所有元素與 other
中的元素交換。
other
的長度必須與 self
相同。
Panics
如果兩個切片的長度不同,此函數將出現Panics。
示例
跨切片交換兩個元素:
let mut slice1 = [0, 0];
let mut slice2 = [1, 2, 3, 4];
slice1.swap_with_slice(&mut slice2[2..]);
assert_eq!(slice1, [3, 4]);
assert_eq!(slice2, [1, 2, 0, 0]);
Rust 強製在特定範圍內隻能有一個對特定數據的可變引用。因此,嘗試在單個切片上使用 swap_with_slice
將導致編譯失敗:
let mut slice = [1, 2, 3, 4, 5];
slice[..2].swap_with_slice(&mut slice[3..]); // compile fail!
為了解決這個問題,我們可以使用 split_at_mut
從切片中創建兩個不同的可變 sub-slices:
let mut slice = [1, 2, 3, 4, 5];
{
let (left, right) = slice.split_at_mut(2);
left.swap_with_slice(&mut right[1..]);
}
assert_eq!(slice, [4, 5, 3, 1, 2]);
相關用法
- Rust slice.swap_unchecked用法及代碼示例
- Rust slice.swap用法及代碼示例
- Rust slice.sort_unstable_by_key用法及代碼示例
- Rust slice.sort_unstable_by用法及代碼示例
- Rust slice.sort用法及代碼示例
- Rust slice.split_array_mut用法及代碼示例
- Rust slice.splitn_mut用法及代碼示例
- Rust slice.split_first用法及代碼示例
- Rust slice.splitn用法及代碼示例
- Rust slice.split_array_ref用法及代碼示例
- Rust slice.sort_by用法及代碼示例
- Rust slice.split用法及代碼示例
- Rust slice.split_inclusive用法及代碼示例
- Rust slice.split_mut用法及代碼示例
- Rust slice.strip_suffix用法及代碼示例
- Rust slice.split_last_mut用法及代碼示例
- Rust slice.split_first_mut用法及代碼示例
- Rust slice.select_nth_unstable用法及代碼示例
- Rust slice.sort_unstable用法及代碼示例
- Rust slice.split_at_mut用法及代碼示例
- Rust slice.select_nth_unstable_by用法及代碼示例
- Rust slice.split_at_unchecked用法及代碼示例
- Rust slice.split_at用法及代碼示例
- Rust slice.split_at_mut_unchecked用法及代碼示例
- Rust slice.strip_prefix用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 slice.swap_with_slice。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。