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

Mat*_*vid 5 rust

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

如果我有这个代码

for line in lines {
    println!("{}: {}", linenumber, line);
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能轻松获得这个号码linenumber?我需要使用外部计数器变量吗?

Vee*_*rac 6

应该这么简单:

for (linenumber, line) in lines.enumerate() {
    println!("{}: {}", linenumber, line);
}
Run Code Online (Sandbox Code Playgroud)

你也可以

#[macro_use]
extern crate itertools;

fn main() {
    for (linenumber, line) in izip!(0.., lines) {
        println!("{}, {}", linenumber, line);
    }
}
Run Code Online (Sandbox Code Playgroud)

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