gpt4 book ai didi

rust - 使用 clap 遍历位置参数

转载 作者:行者123 更新时间:2023-11-29 08:00:27 24 4
gpt4 key购买 nike

假设我有以下命令行:

./app foo bar baz

我想从中取出这个数组:

["foo", "bar", "baz"]

考虑到位置参数可以任意计数,有没有办法在 clap 中做到这一点?

最佳答案

您要找的函数是values_of ,你可以这样使用它:

let matches = App::new("My Super Program")
.arg(Arg::with_name("something")
.multiple(true))
.get_matches();

let iterator = matches.values_of("something");
for el in iterator.unwrap() {
println!("{:?}", el);
};

如果您不关心保留无效的 UTF-8,更简单的选择是使用 values_of_lossy它返回一个实际的 Vector ( Option<Vec<String>> ) 而不是一个迭代器。

let arguments = matches.values_of_lossy("something").unwrap();      
println!("{:?}", arguments);

请记住,您真的不应该在实际程序中解包这些值,因为如果不提供参数,它只会在运行时崩溃。唯一的异常(exception)是 required(true) 的论点。被设置了。在调用 get_matches 时,缺少它们会导致运行时错误(带有有用的错误消息) .

关于rust - 使用 clap 遍历位置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44094262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com