帮我用rust编写一个程序,要求解析命令行参数,不同的参数执行不同的函数。
时间: 2024-05-05 22:22:24 浏览: 155
好的,以下是一个简单的例子,可以作为参考:
```rust
use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() == 1 {
println!("No command specified");
return;
}
match args[1].as_str() {
"say_hello" => say_hello(),
"calculate" => {
if args.len() < 4 {
println!("Usage: {} calculate <num1> <num2>", args[0]);
return;
}
let num1 = args[2].parse::<i32>().unwrap();
let num2 = args[3].parse::<i32>().unwrap();
calculate(num1, num2);
}
_ => {
println!("Invalid command");
return;
}
}
}
fn say_hello() {
println!("Hello!");
}
fn calculate(num1: i32, num2: i32) {
println!("{} + {} = {}", num1, num2, num1 + num2);
}
```
这个程序接受命令行参数,如果没有参数或者只有一个参数,则输出错误信息;如果第一个参数是 "say_hello",则调用 `say_hello` 函数;如果第一个参数是 "calculate",则需要传入两个整数参数,程序会将这两个参数相加并输出结果;如果第一个参数不是上述两种情况,则输出错误信息。
阅读全文