我正在处理一个需要解析cli参数的命令行程序。我的问题是,有一个错误,当我试图从字符串的向量解析元素
我有一个叫做ìnto_num_vec()
的函数,它接受一个字符串向量,我应该把它解析成一个新的整数向量。
代码来自lib.rs
pub fn affirm_args(input: Vec<String>) {
if input.len() < 2 {
panic!("To few arguments");
} else {
let numbers = into_num_vec(input);
print_numbers(numbers);
}
}
fn into_num_vec(input: Vec<String>) -> Vec<i32> {
let mut collection: Vec<i32> = Vec::new();
for i in input {
match i.trim().parse() {
Ok(n) => collection.push(n),
Err(_) => panic!("Error parsing")
}
}
collection
}
pub fn print_numbers(input: Vec<i32>) {
for i in input {
println!("{}", i);
}
}
函数正在恐慌,我正在收到自定义恐慌消息"解析错误"。
main.rs中的代码
use sort_program::*;
use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
affirm_args(args);
}
程序的第一个参数通常是可执行文件名。你应该跳过它:
fn main() {
let args: Vec<String> = env::args().skip(1).collect();
affirm_args(args);
}