有没有办法知道我们在for循环中完成了多少次迭代?

时间:2015-05-31 11:07:04

标签: rust

有没有一种简单的方法可以知道我们在for循环中完成了多少次迭代?

如果我有这段代码

for line in lines {
    println!("{}: {}", linenumber, line);
}

如何轻松获取号码linenumber?我需要使用外部计数器变量吗?

1 个答案:

答案 0 :(得分:6)

应该如此简单:

for (linenumber, line) in lines.enumerate() {
    println!("{}: {}", linenumber, line);
}

您也可以

#[macro_use]
extern crate itertools;

fn main() {
    for (linenumber, line) in izip!(0.., lines) {
        println!("{}, {}", linenumber, line);
    }
}

更灵活。这样做的好处是可以让您更改编号的开头和步骤以及压缩元素的数量。