如何使用 Clap 指定布尔命令行标志?
How do I specify a boolean command line flag using Clap?
我想添加一个命令行标志。它是一个标志,所以它不需要参数,它存在或不存在。我还需要知道如何读取标志,无论是 TRUE 还是 FALSE。
这是定义标志的代码:
.arg(
Arg::with_name("metal")
.long("metal-micky")
.required(false)
.help("I want metal micky"),
)
我正在尝试读取这样的值:
let z = matches.value_of("metal");
但是当我打印它时它会导致 None
:
println!("FLAG: {:?}", z);
即使我在命令行中指定标志也是None
不知道这是否是“批准”的方法,但我使用 Args::takes_value
:
.arg(
Arg::with_name("metal")
.long("metal-micky")
.required(false)
.takes_value(false)
.help("I want metal micky"),
)
然后检查标志是否通过 matches.is_present("metal")
这个答案已经过时了。你想要的是:
.arg(
Arg::with_name("metal")
.long("metal-micky")
.takes_value(false)
.help("I want metal mickey")
然后你检查:
matches.is_present("metal")
我想添加一个命令行标志。它是一个标志,所以它不需要参数,它存在或不存在。我还需要知道如何读取标志,无论是 TRUE 还是 FALSE。
这是定义标志的代码:
.arg(
Arg::with_name("metal")
.long("metal-micky")
.required(false)
.help("I want metal micky"),
)
我正在尝试读取这样的值:
let z = matches.value_of("metal");
但是当我打印它时它会导致 None
:
println!("FLAG: {:?}", z);
即使我在命令行中指定标志也是None
不知道这是否是“批准”的方法,但我使用 Args::takes_value
:
.arg(
Arg::with_name("metal")
.long("metal-micky")
.required(false)
.takes_value(false)
.help("I want metal micky"),
)
然后检查标志是否通过 matches.is_present("metal")
这个答案已经过时了。你想要的是:
.arg(
Arg::with_name("metal")
.long("metal-micky")
.takes_value(false)
.help("I want metal mickey")
然后你检查:
matches.is_present("metal")