[英]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.