将一个源数组拆分为几个副本的正确方法是什么?

Con*_*ine 5 arrays split rust

像这样的东西:

let source = [0u8; 40];
let a = source[0..11];
let b = source[11..40];
Run Code Online (Sandbox Code Playgroud)

She*_*ter 8

使用slice::split_at

fn main() {
    let source = [0u8; 40];
    let (a, b) = source.split_at(11);
    println!("{}, {}", a.len(), b.len())
}
Run Code Online (Sandbox Code Playgroud)

还有如何操作 Rust 数组的 2 个可变切片split_at_mut中讨论的内容。

在这种情况下,您还可以获取多个子切片,因为它是不可变的。这些可能是重叠的:

fn main() {
    let source = [0u8; 40];
    let a = &source[0..11];
    let b = &source[11..40];
    println!("{}, {}", a.len(), b.len())
}
Run Code Online (Sandbox Code Playgroud)

分成几份?

切片的要点是进行复制。切片只是指向数据开头和长度的指针。数据本身是共享的。

我想制作“a”和“b”数组而不是切片

那么你应该查看 如何在 Rust 中将切片作为数组获取?