如何根据分隔符将向量拆分为切片向量?

use*_*833 6 rust

如果我有一个向量,例如

let mut bytes = vec![0x01, 0x02, 0x03, 0x40, 0x04, 0x05, 0x40, 0x06, 0x40];
Run Code Online (Sandbox Code Playgroud)

我想用分隔0x40符分隔向量。有没有一种干净的方法来实现这个功能?

预期输出: [[0x01, 0x02, 0x03], [0x04, 0x05], [0x06]]

She*_*ter 6

使用slice::split

fn main() {
    let bytes = [0x01, 0x02, 0x03, 0x40, 0x04, 0x05, 0x40, 0x06, 0x40];
    let pieces: Vec<_> = bytes
        .split(|&e| e == 0x40)
        .filter(|v| !v.is_empty())
        .collect();
    println!("{:?}", pieces)
}
Run Code Online (Sandbox Code Playgroud)

也可以看看: