这样的事情:
let source = [0u8; 40];
let a = source[0..11];
let b = source[11..40];
答案 0 :(得分:2)
fn main() {
let source = [0u8; 40];
let (a, b) = source.split_at(11);
println!("{}, {}", a.len(), b.len())
}
split_at_mut
中也讨论了How to operate on 2 mutable slices of a Rust array。
在这种情况下,您还可以使用多个子句,因为它是不可变的。这些可能重叠:
fn main() {
let source = [0u8; 40];
let a = &source[0..11];
let b = &source[11..40];
println!("{}, {}", a.len(), b.len())
}
成几份?
切片的重点是复制不是。切片只是指向数据开头和长度的指针。数据本身是共享的。
我想制作一个'和' b'数组而不是切片