Dzwebs.Net

撰写电脑技术杂文十余年

rust使用env构造命令行的示例

Admin | 2024-2-4 11:03:22 | 被阅次数 | 287

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

      本文要解决的问题如题所示:代码如下

use std::env;
fn main() {
    let get_arg:Vec<String>=env::args().collect();
    //get_arg[0],第一个参数为target路径.exe,
    //如target\debug\my_cli_env.exe,从第二参数开始才是有效的命令参数

    if get_arg.len() <=1 {
        println!("未输入命令,请先输入命令!");
        return;
    }
    let command = &get_arg[1..];
    //match枚举两个参数,第一个为参数集合,第二个为参数长度
    match (command,command.len()){
        (c,len) if c.contains(&"hello".to_string())  =>{
            showcmdstring(c,len);
        },
        (c,len) if c.contains(&"ok".to_string())  =>{
            showcmdstring(c,len);
        },
        (c,len) if c.contains(&"do".to_string())  =>{
            showcmdstring(c,len);
        },
        _ => {
            showcmdstring(&["其它命令".to_string()],0);
        }
    }
}
fn showcmdstring(c:&[String],len:usize){
    println!("输入了 {:?} 命令,参数个数为:{}",c,len);
    for i in c{
        println!(" 参数:{}",i);
    }
}
/*
输入 cargo run do v 123
输出如下
输入了 ["do", "v", "123"] 命令,参数个数为:3
 参数:do
 参数:v
 参数:123
 */


该杂文来自: 最新技术

上一篇:通过impl构造链式函数调用及使用match枚举struct

下一篇:rust实现有趣的斐波那契数列

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计