Lesen von Kommandozeilenargumenten

Rust:
Lesen von Kommandozeilenargumenten

So geht’s:

Rust stellt die Struktur std::env::args zur Verfügung, die eine Sammlung der Kommandozeilenargumente bietet. Hier ist ein einfaches Beispiel:

use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();
    
    for (index, argument) in args.iter().enumerate() {
        println!("Argument {}: {}", index, argument);
    }
}

Angenommen, du startest dein Programm mit cargo run arg1 arg2, wäre die Ausgabe:

Argument 0: target/debug/programmname
Argument 1: arg1
Argument 2: arg2

Tiefgang

Historisch gesehen kommen Kommandozeilenargumente aus der Zeit der Terminal-Computer, wo Grafikoberflächen selten waren. Rust bietet eine moderne, sichere Möglichkeit, diese zu nutzen. Es gibt Alternativen, wie clap, structopt oder getopts, die ergonomischere Interfaces für komplexe Parameter bieten. std::env::args ignoriert das erste Argument (den Programmnamen), während std::env::args_os auch nicht-valides Unicode berücksichtigt. Sich mit den Implementationen hinter std::env zu befassen, lohnt sich, um zu verstehen, wie Rust mit OS-interfacing und Error handling umgeht.

Siehe Auch