为什么这个“while let”循环是无限循环?

问题描述 投票:0回答:1
#[test]
fn test_looping() {
    let index: usize = 2;
    while let Some(index) = index.checked_sub(1) {
        println!("{}", index);
    }
}

为什么这会造成无限循环?我希望

index
会被
while let
表达式覆盖。相反,我必须添加几行额外的代码才能使其发生变异
index

rust while-loop infinite-loop
1个回答
0
投票

let
声明一个新的绑定,隐藏前一个绑定。它不会修改现有变量。
index
最初并未声明为
let mut index
,这表明它没有被突变。

© www.soinside.com 2019 - 2024. All rights reserved.