小编Mar*_*ick的帖子

如何让 clap 处理具有多个值的单个参数,而不必多次指定标志?

我想要一个命令,这样do_something --list 1 2 3会导致结构中的字段设置为[1, 2, 3].

以下代码适用于do_something --list 1 --list 2 --list 3

use clap::Parser; // 3.2.8

#[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)]
pub struct Cli {
    #[clap(short, long, value_parser)]
    pub list: Option<Vec<i32>>,
}

fn main() {
    let cli = Cli::parse();
    println!("CLI is {:#?}", cli);
}
Run Code Online (Sandbox Code Playgroud)

当我使用时--list 1 2 3,它给了我错误:

错误:发现参数“2”不是预期的,或者在此上下文中无效

我也尝试过--list "1 2 3"--list 1,2,3但也遇到了错误。

我还能够获得多个值作为位置参数,但不能作为Option带有标志的参数。

--list 1 2 3拍手是支持什么吗?我认为这是由 clap …

rust clap

7
推荐指数
2
解决办法
5806
查看次数

标签 统计

clap ×1

rust ×1