簡體   English   中英

如何使用 --list 1 2 3 之類的輸入來處理具有多個值的可選參數,而不必多次指定標志

[英]How to get clap to process a optional argument with multiple values with input like --list 1 2 3 without having to specify the flag multiple times

我認為這是由 clap 多個值支持的,但無法使其正常工作。 我想要一些命令,例如“do_something --list 1 2 3”,其中列表將導致結構中的字段設置為 [1, 2, 3]

我有以下代碼,它確實適用於 do_something --list 1 --list 2 --list 3,但不適用於 --list 1 2 3 它給了我“錯誤:找到的參數'2'不是預期的,或在此上下文中無效”

我也試過 --list "1 2 3" 和 --list 1,2,3 但也有錯誤。

我還能夠將多個值用作位置參數,但不能用作帶有標志的選項。

--list 1 2 3 是 clap 支持的嗎? 如果是這樣,我的設置/代碼或命令行輸入中是否缺少某些內容?

use clap::Parser;

#[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);

}

您正在尋找use_value_delimiter設置。 設置use_value_delimiter = true並將實際分隔符設置為與value_delimiter = ','一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM