我想更改循环中的值,就像在注释中一样.这应该很简单,但我看不出解决办法.

fn main() {
    let mut grid: [[i32; 10]; 10] = [[5; 10]; 10];
    for (i, row) in grid.iter_mut().enumerate() {
        for (y, col) in row.iter_mut().enumerate() {
            //grid[i][y] = 7;
            print!("{}", col);
        }
        print!("{}","\n");
    }
}

推荐答案

iter_mut迭代器为您提供对元素的引用,您可以使用它来改变网格.通常不应该使用索引.

fn main() {
    let mut grid: [[i32; 10]; 10] = [[5; 10]; 10];
    for row in grid.iter_mut() {
        for cell in row.iter_mut() {
            *cell = 7;
        }
    }

    println!("{:?}", grid)
}

Playground link

Rust相关问答推荐

使用windows crate Rust 展示windows

为什么导入Borrow将借入的呼叫改为Borrow::borrow而不是RefCell::borrow

Rust中的相互递归特性与默认实现

我如何在Rust中使用传递依赖中的特征?

在执行其他工作的同时,从共享裁判后面的VEC中删除重复项

在使用#[NO_STD]时,如何在Rust中收到紧急消息?

Rust&;Tokio:如何处理更多的信号,而不仅仅是SIGINT,即SIGQUE?

如何实现Serde::Ser::Error的调试

JSON5中的变量类型(serde)

使用 Option 来分配?

unwrap 选项类型出现错误:无法移出共享引用后面的*foo

Rust 文件未编译到 dll 中

Rust中的一生语法有什么作用?

go 重并堆积MPSC通道消息

产生拥有值的迭代器的 Rust 可变borrow 在循环中失败

如何在 Rust 中将 UTF-8 十六进制值转换为 char?

如何在 use_effect_with_deps 中设置监听器内的状态?

用逗号分隔字符串,但在标记中使用逗号

通用函数中的生命周期扣除和borrow (通用测试需要)

基于名称是否存在的条件编译