【问题标题】:What is the idiomatic way to write a for loop without using the iterator value?在不使用迭代器值的情况下编写 for 循环的惯用方法是什么?
【发布时间】:2015-04-29 00:52:57
【问题描述】:

假设我想要一个使用范围的有限循环:

let mut x: i32 = 0;
for i in 1..10 {
    x += 1;
}

编译器会吐出警告:

warning: unused variable: `i`, #[warn(unused_variables)] on by default
for i in 1..10 {
    ^

有没有更惯用的方式来写这个不会让编译器抱怨?

【问题讨论】:

  • 请注意,1..10 只产生 1 到 9它确实不会产生10,以防这是您所期望的。因此,您的代码仅执行 9 次。要包含 10,你应该得到 1..=10,但如果你想要更多地道的 Rust 代码,我们通常写 0..10(如果你以后想使用 i 作为数组索引,这更相关)。跨度>

标签: rust


【解决方案1】:

你可以写_作为你的模式,意思是“丢弃价值”:

let mut x: i32 = 0;
for _ in 1..10 {
    x += 1;
}

【讨论】:

  • 太棒了!我已经为这个答案寻找了一个小时,而您却清楚而清楚地回答了它!非常感谢! +1
猜你喜欢
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
  • 2011-10-04
  • 1970-01-01
  • 2019-06-17
  • 2016-03-27
  • 2019-01-07
相关资源
最近更新 更多