首页 > 解决方案 > 为什么我不能创建以变量为界的范围?

问题描述

我正在做一些锻炼练习。当我尝试使用变量作为范围的界限时,我遇到了一个问题。我正在处理的代码如下:

pub fn test(start: i32, end: i32) {
    println!("{}-{}", start, end);
    for n in start..end {
        println!("IN LOOP: {}", n);
    }
}

fn main() {
    test(7, 5);
}

当我尝试使用任何一组startend参数调用此函数时,就会出现问题。我可以看到第一次println!调用的输出,但“IN LOOP”打印永远不会运行。如果我for n in (start..end)用类似的东西替换这条线,for n in (3..0)它就会成功运行。我很好奇为什么我似乎无法创建一个受变量限制的范围。

该示例可在The rust playground上找到

标签: rustiteratorrange

解决方案


推荐阅读