【发布时间】:2022-08-11 17:14:39
【问题描述】:
我来自java,我喜欢以这种方式使用数组。
public int do_something(int width, int height){
int[][] nums = new int[height][width];
return 1;
}
在上面不是问题,java 将创建一个 int 值的二维数组并用零填充它们。
我也想用 rust 来实现这一点。 这是我尝试过的。
fn do_something(n: usize, m: usize) -> i32 {
let memo: [[i32; m]; n] = [[0; m]; n];
1
}
该程序不会编译它告诉我我不能用非常数初始化数组。 我的问题是我事先不知道 n 和 m 的值。
我尝试使用向量而不是这样的数组:
fn do_something(n: usize, m: usize) -> i32 {
let mut nums: Vec<Vec<i32>> = Vec::new();
for _i in 0..n{
let mut each: Vec<i32> = Vec::new();
for _j in 0..m{
each.push(0);
}
nums.push(each);
}
println!(\"{:?}\", nums);
1
}
有没有更简单的方法来用变量初始化数组并用零填充它们?还是我应该用上述方法就足够了?
标签: arrays rust initialization