Một mảng cố định chiều dài của một loại có nguồn gốc (hoặc của một loại mà thực hiện các Copy
đặc điểm) có thể được nhân bản vô tính ở Rust lên đến chiều dài của 32. Đó là, này biên dịch:Làm thế nào để sao chép một mảng có chiều dài lớn hơn 32?
fn main() {
let source: [i32; 32] = [0; 32]; // length 32
let _cloned = source.clone();
}
Nhưng doesn này 't:
fn main() {
let source: [i32; 33] = [0; 33]; // length 33
let _cloned = source.clone(); // <-- compile error
}
trong thực tế, trait Clone
chỉ tuyên bố một phương pháp cho mỗi chiều dài mảng chung, từ 0 đến 32.
là gì một cách hiệu quả và thành ngữ để sao chép một mảng chung của chiều dài, nói , 33?
Có lý do nào khiến bạn không thể sử dụng 'Vec' trong trường hợp này không? – Shepmaster
Đối với bất kỳ ai khác đi "WTF", [đây là triển khai] (https://github.com/rust-lang/rust/blob/1.0.0/src/libcore/array.rs#L41) – remram