arrays - 在 Rust 中创建二维数组

标签 arrays vector multidimensional-array rust

我如何在 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/

相关文章:

php - 重新排列多维数组

java - 多维Java ArrayList(声明元素语法)

ios - 如何在Swift中从JSON对象删除属性(key:values)

c++ - 无法弄清楚如何将结构数组传递给函数

c++ - 下标需要数组或指针类型

android - 在android中使用矢量路径和XML绘制三角形

c - 从文件中获取多个矩阵并将其存储在整数指针中

php - 当键以数字开头时如何访问 PHP 对象

java - NoElementException 但我打印元素并得到预期结果

python - 从字符串中提取 float 以创建多个/多维数组来操作数据