Rust教程没有解释如何从命令行获取参数。在所有示例中,fn main()
都只显示为空参数列表。
从main
访问命令行参数的正确方法是什么?
在字符串方面,barjak提到的方法是有效的,但如果你需要将参数作为数字(在本例中是uint)使用,你需要进行以下转换:
fn main() {
let arg : ~[~str] = os::args();
match uint::from_str(arg[1]){
Some(x)=>io::println(fmt!("%u",someFunction(x))),
None=>io::println("I need a real number")
}
}
as_slice()
来解析命令行参数:use std::os;
fn seen_arg(x: uint)
{
println!("you passed me {}", x);
}
fn main() {
let args = os::args();
let args = args.as_slice();
let nitems = {
if args.len() == 2 {
from_str::<uint>(args[1].as_slice()).unwrap()
} else {
10000
}
};
seen_arg(nitems);
}
use std::os;
fn main() {
let args = os::args();
println!("{}", args.get(1));
}
// Compile
rustc args.rs && ./args hello-world // returns hello-world
as_slice()
已经不存在了,应该使用&args
。 - Slava Semushin