如何創建一個包含固定大小的大數組的結構數組?我想使用數組而不是向量。如何創建一個包含大型數組的結構數組?
此代碼是一個例子,但
struct _Tmove {
data1: usize,
data2: u64,
data3: bool,
}
struct _TmoveP {
data4: Box<[_Tmove]>,
data5: isize,
}
fn main() {
let mut gen_list = Box::new([
_TmoveP {
data5: 1,
data4: Box::new([_Tmove { data1: 5, data2: 1, data3: true }; 300]),
}
; 100000]);
assert!(gen_list[0].data4[0].data1==5);
}
error[E0277]: the trait bound `_Tmove: std::marker::Copy` is not satisfied
--> src/main.rs:16:29
|
16 | data4: Box::new([_Tmove { data1: 5, data2: 1, data3: true }; 300]),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: the `Copy` trait is required because the repeated element will be copied
error[E0277]: the trait bound `_TmoveP: std::marker::Copy` is not satisfied
--> src/main.rs:13:33
|
13 | let mut gen_list = Box::new([
| ^
|
= note: the `Copy` trait is required because the repeated element will be copied
我使用防鏽1.12不會編譯。
您是否看到編譯器的錯誤?它說,「特性綁定'_TmoveP:std :: marker :: Copy'不滿意[...]注意:'Copy'特性是必需的,因爲重複的元素將被複制。這是否更清晰? – Aurora0001
在兩個結構體 處添加#[派生(複製)],錯誤爲: 錯誤[E0204]:此類型的特性「複製」可能不會執行 - > src/main.rs:8:10 | 8 | #[派生(複製)] |注意:在#[derive(Copy)]的擴展中(在src/main.rs中定義)[^^^^'data4'沒有實現'Copy' src/main.rs:8:10: – gekomad
X-posted here:https://www.reddit.com/r/rust/comments/56a91d/struct_of_structs_with_array/ –