我如何在 Rust 中创建一个空的可变二维数组?
这是我目前尝试过的:
let mut state[[u8 * 4] * 4];
这会产生错误
error: expected one of `:`, `;`, `=`, or `@`, found `[`
--> src/main.rs:2:18
|
2 | let mut state[[u8 * 4] * 4];
| ^ expected one of `:`, `;`, `=`, or `@` here
最佳答案
在 Rust 1.0 中,以下工作:
let mut state = [[0u8; 4]; 6];
state[0][1] = 42;
请注意,内部段的长度是类型的组成部分。例如,您可以按如下方式引用(并传递)state
:
let a: &[[u8; 4]] = &state;
但并非没有指定子数组的固定长度。如果你需要可变长度的子数组,你可能需要做这样的事情:
let x: [Box<[u8]>; 3] = [
Box::new([1, 2, 3]),
Box::new([4]),
Box::new([5, 6])
];
let y: &[Box<[u8]>] = &x;
关于arrays - 在 Rust 中创建二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212212/