arrays - 将二维数组传递给 Rust 中的函数

标签 arrays function rust

有人知道如何传递二维数组以在 Rust 中运行吗?该函数需要更改数组的值。

这是我创建数组的方式:

let state=[mut [mut 0u8, ..4], ..4];

谢谢。

最佳答案

(注意:rust 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]) { ... }

但是 vectors 内部的 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]) {}

关于arrays - 将二维数组传递给 Rust 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13241190/

相关文章:

java - 如何在java中将数组的一部分作为函数参数传递?

sql - Codeigniter Active Record - 删除不在数组中的位置

c - C 中检查文件是否存在特定扩展名或模式的函数

python将不同的**kwargs传递给多个函数

rust - 将盒装特征转换为 Rust 中的可变特征引用

javascript - 从node.js发送请求到PHP,返回一个数组

javascript - 基于字符串数组过滤对象数组 "with partial match"

c - 从c中的末尾获取链表中的节点值

rust - 使用 C 回调用户数据存储盒装 Rust 闭包时出现段错误

rust - 如何在 Rust 中返回一个引用 self 的结构体?