Можно ли использовать шаблон среза для анализа аргументов командной строки без клонирования? - PullRequest
0 голосов
/ 28 сентября 2018

Можно ли использовать шаблон среза в Rust для анализа аргументов командной строки?

Я фиксирую аргументы как: let args: Vec<String> = std::env::args().skip(1).collect();

Я думаю, что-то вродеthis, который не компилируется:

// example usage: progname run bash ls -la
match args {
    ["run", rest_of_commands[..]] => println!("{:?}", rest_of_commands),
    _ => println!("usage: run <your-command>"),
}

1 Ответ

0 голосов
/ 28 сентября 2018

Начиная с версии 1.29 стабильного синтаксиса для «остальных» нет.Однако существует ночной синтаксис:

#![feature(slice_patterns)]

fn main() {
    let args = ["foo", "bar"];
    match args {
        ["run", rest_of_commands..] => println!("{:?}", rest_of_commands),
        _ => println!("usage: run <your-command>"),
    }
}

( Постоянная ссылка на игровую площадку )

Синтаксис .. в значении «остальные» еще не решено, и может измениться в будущем .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...