gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 08:17:23 25 4
gpt4 key购买 nike

有人知道如何传递二维数组以在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com