在 Rust 中,一个本地类型(或实现了 Copy
特性的类型)的固定长度数组可以克隆,最大长度为32。也就是说,下面的代码可以编译通过:
fn main() {
let source: [i32; 32] = [0; 32]; // length 32
let _cloned = source.clone();
}
但这个不会:
fn main() {
let source: [i32; 33] = [0; 33]; // length 33
let _cloned = source.clone(); // <-- compile error
}
实际上,特质Clone
仅为每个通用数组长度(从0到32)声明了一个方法。
如何高效且符合习惯的克隆一个长度为33的通用数组?
Vec
的原因是什么? - Shepmaster