Чтение аргументов командной строки

Rust:
Чтение аргументов командной строки

Как это сделать:

Вот самый простой способ захватить аргументы:

use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();
    println!("{:?}", args);
}

Запустите его с помощью cargo run arg1 arg2. Вы увидите:

["path/to/executable", "arg1", "arg2"]

Аккуратный вариант с итераторами:

use std::env;

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

Теперь попробуйте cargo run cool stuff:

cool
stuff

Погружение

Исторически, аргументы командной строки являются данью тем временам, когда графические интерфейсы не были широко распространены. Сейчас они отлично подходят для скриптов, серверов или инструментов.

std::env::args в Rust использует итератор, что эффективно с точки зрения памяти и лениво. Он также поддерживает Unicode. Есть также args_os для необработанных строк ОС.

Для сложного парсинга полезны крейты вроде clap или structopt. Они разбирают флаги, опции и подкоманды.

Смотрите также