如何在Rust中跳过迭代器的前n个元素?

36
当迭代参数时(例如),最直接的跳过前 N 个元素的方法是什么?
例如:
use std::env;

fn main() {
    for arg in env::args() {
        println!("Argument: {}", arg);
    }
}

我尝试了env::args()[1..],但切片操作不被支持。

如何最简单地跳过迭代器的第一个参数?

2个回答

60

原来可以使用.skip()方法,例如:

use std::env;

fn main() {
    for arg in env::args().skip(1) {
        println!("Argument: {}", arg);
    }
}

3
你可以尝试做如下操作:
  fn main() {
      let args: Vec<String> = env::args().collect();
      for x in &args[1..]
      {
          println!("{:?}", x);
      }
  }

1
你能否添加一份简要说明这个解决方案(以及它与其他答案的比较)? - ryanwebjackson
所提出的问题非常特定于迭代器以及如何在使用迭代器时跳过n个元素。这个答案将迭代器收集到一个集合中,然后对其进行切片,解决了问题,但并没有特别涉及迭代器,即没有进行收集操作。最佳答案是正确的,应该被接受。 - SaiBorg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接