【问题标题】:How to change value inside an array while iterating over it in Rust如何在 Rust 中迭代数组时更改数组中的值
【发布时间】:2018-01-29 07:48:33
【问题描述】:

我想像评论中一样更改循环内的值。它应该很简单,但我没有看到解决方案。

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");
    }
}

【问题讨论】:

    标签: rust


    【解决方案1】:

    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

    【讨论】:

    • 更习惯用法是for row in &mut grid {for cell in &mut row {
    猜你喜欢
    • 1970-01-01
    • 2021-05-08
    • 2010-12-18
    • 2016-03-26
    • 1970-01-01
    • 2020-07-21
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多