【Rust】数组切片(六)
环境
- Time 2022-03-07
- Rust 1.59.0
概念
数组切片是引用数组中连续的一部分。
示例
repeat
对元素进行重复。
fn main() {
    let arr = [0, 1];
    let vec = arr.repeat(4);
    println!("{vec:?}"); //[0, 1, 0, 1, 0, 1, 0, 1]
}
reverse
反转。
fn main() {
    let mut arr = [0, 1, 2, 3, 4];
    arr.reverse();
    println!("{arr:?}"); //[4, 3, 2, 1, 0]
}
rotate_left
旋转和交换。
fn main() {
    let mut arr = [0, 1, 2, 3, 4];
    arr.rotate_left(2);
    println!("{arr:?}"); // [2, 3, 4, 0, 1]
}
split
分割,可变版本 split_mut,rsplit_mut。
fn main() {
    let arr = [0, 1, 2, 3, 4];
    let split = arr.split(|n| n == &2);
    let rsplit = arr.rsplit(|n| n == &2);
    split.for_each(|e| println!("{e:?}"));
    rsplit.for_each(|e| println!("{e:?}"));
}
partition_point
提供一个闭包获取满足条件的切分点,数组需要有序。
fn main() {
    let arr = [0, 1, 2, 3, 4];
    let i = arr.partition_point(|&x| x < 2);
    println!("{i}");
}
splitn
分割,并且进行次数限制,可变版本 splitn_mut,rsplitn_mut。
fn main() {
    let arr = [0, 1, 2, 3, 4];
    for ele in arr.splitn(2, |&e| e % 2 != 0) {
        println!("{ele:?}")
    }
    for ele in arr.rsplitn(2, |&e| e % 2 != 0) {
        println!("{ele:?}")
    }
}
split_at
根据位置分割,可变版本 split_at_mut。
fn main() {
    let arr = [0, 1, 2, 3, 4];
    let (left, right) = arr.split_at(2);
    println!("left: {left:?}, right: {right:?}")
}
总结
了解了数组切片中相关的一些方法。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号