Rust tutorial没有解释如何从命令行获取参数。 fn main()
在所有示例中仅显示为空参数列表。
从 main
访问命令行参数的正确方法是什么?
最佳答案
您可以使用 std::env::args
访问命令行参数或 std::env::args_os
功能。这两个函数都返回参数上的迭代器。前者遍历 String
(易于使用),但如果其中一个参数不是有效的 unicode,则会出现 panic 。后者遍历 OsString
并且从不 panic 。
请注意,迭代器的第一个元素是程序本身的名称(这是所有主要操作系统中的约定),因此第一个参数实际上是第二个迭代元素。
处理 args
结果的一种简单方法是将其转换为 Vec
:
use std::env;
fn main() {
let args: Vec<_> = env::args().collect();
if args.len() > 1 {
println!("The first argument is {}", args[1]);
}
}
您可以使用整个 standard iterator toolbox处理这些论点。例如,只检索第一个参数:
use std::env;
fn main() {
if let Some(arg1) = env::args().nth(1) {
println!("The first argument is {}", arg1);
}
}
您可以在 crates.io 上找到图书馆用于解析命令行参数:
关于command-line - 如何访问 Rust 中的命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619320/