Rust:
Commandoregelargumenten lezen
Hoe te:
Hier is de eenvoudigste manier om argumenten te grijpen:
use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
println!("{:?}", args);
}
Voer het uit met cargo run arg1 arg2
. Je zult zien:
["pad/naar/uitvoerbaar", "arg1", "arg2"]
Een nettere optie met iterators:
use std::env;
fn main() {
for arg in env::args().skip(1) {
println!("{}", arg);
}
}
Probeer nu cargo run cool stuff
:
cool
stuff
Diepgaande duik
Historisch gezien zijn commandoregelargumenten een terugblik naar de dagen dat GUI’s niet wijdverspreid waren. Nu zijn ze geweldig voor scripts, servers of hulpprogramma’s.
Rust’s std::env::args
gebruikt een iterator, wat geheugenefficiënt en lui is. Het kan ook Unicode aan. Er is ook args_os
voor ruwe OS-strings.
Voor complexe parsing zijn crates zoals clap
of structopt
handig. Ze parsen vlaggen, opties en subcommando’s.