1
有谁知道如何传递一个二维数组以在Rust中运行?该函数需要更改数组的值。将二维数组传递给Rust中的函数
这是我如何创建数组:
let state=[mut [mut 0u8, ..4], ..4];
感谢。
有谁知道如何传递一个二维数组以在Rust中运行?该函数需要更改数组的值。将二维数组传递给Rust中的函数
这是我如何创建数组:
let state=[mut [mut 0u8, ..4], ..4];
感谢。
(注:生锈0.5,这是还没有出来的时候,这一问题被问)
愚蠢的办法,找出一个值的类型是写一个函数与错误类型,然后尝试通过它。 :)
fn func(state: int) {}
生产:
error: mismatched types: expected `int` but found `[mut [mut u8]/4]/4` (expected int but found vector)
所以这是你喜欢的类型。除了它不再是这样写的,所以看起来这个输出中有一个错误。非常想问问编译器。你真的想要:
fn func(state: [mut [mut u8 * 4] * 4]) { ... }
但mut
里面的向量是不赞成;您可以通过使变量本身mut
获得相同的效果。这给我们带来了:
let mut state = [[0u8, ..4], ..4];
func(state);
// ...
fn func(state: [[u8 * 4] * 4]) {}
如果你想真正改变state
里面的功能,你需要一个可变的指针指向它,所以最后:
let mut state = [[0u8, ..4], ..4];
func(&mut state);
// ...
fn func(state: &mut [[u8 * 4] * 4]) {}