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
stuffDiepgaande 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.