Вы можете использовать nth()
:
let second_arg = env::args().nth(1).expect("no second arg");
, который возвращает Option<String>
.
Это семантически эквивалентно вызову skip(1)
, за которым следует next()
.
Чтобы пойти дальше, вы можете использовать сопоставление с образцом:
let mut args = env::args();
match args.nth(1).as_ref().map(|s| s.as_str()) {
// args has been consumed so it will iterate over the next elements
Some("sort") => for arg in args {
println!("arg: {}", arg);
},
_ => {},
}
Необходимо преобразовать аргумент из String
в &str
, чтобы можно было использовать Some("sort")
как есть.
В качестве альтернативы вы можете использовать пакет синтаксического анализа командной строки, например clap .