繁体   English   中英

解析Rust中的命令行arguments

[英]Parsing command line arguments in Rust

我正在开发一个命令行程序,我需要在其中解析 cli arguments。 我的问题是当我尝试从字符串向量中解析元素时出现错误

我有一个名为ìnto_num_vec()的 function,它接受一个字符串向量,我应该将它解析为一个新的整数向量。

来自 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) } }

function 正在恐慌,我收到自定义恐慌消息“解析错误”。

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); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM