软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 编程语言 -> Rust1.7.0处理命令行参数 -> 正文阅读

[编程语言]Rust1.7.0处理命令行参数


std是 Rust 标准函数库;
env 模块提供了处理环境函数。
在使用标准函数库的时候,使用 use 导入相应的 module 。

一、直接输出

use std::env;

fn main(){
    for argument in env::args() {
        println!("*** args = {}", argument);
    }
}
$cargo run  12 and 78
     Running `target/debug/attribute_test 12 and 78`
*** args = target/debug/attribute_test
*** args = 12
*** args = and
*** args = 78

二、存储并输出


修改:
$vi src/main.rs

代码:
use std::env;
fn main(){

    let mut arguments = Vec::new();

    for argument in env::args() {
        arguments.push(argument);
    }

    for a in arguments{
        println!("*** argument = {}", a);
    }
}

Vec 是一个可增长的list数据类型,提供push 和pop 数据操作。
通过 arguments.push( ) 操作将命令行参数保存到 arguments中。
$cargo run  12 and 78
     Running `target/debug/attribute_test 12 and 78`
*** args = target/debug/attribute_test
*** args = 12
*** args = and
*** args = 78

三、计算


修改:
$vi src/main.rs

代码:
use std::env;
use std::str::FromStr;

fn main(){

    let mut arguments = Vec::new();

    for argument in env::args() {
        arguments.push(argument);
    }

    let first:i32 = i32::from_str(&arguments[1]).expect("error parsing argument");
    let second:i32 = i32::from_str(&arguments[2]).expect("error parsing argument");
    let result = add(first,second);
    println!("*** value = {}",result);
}

fn add(x:i32,y:i32)-> i32{
  return x+y;
}

#[test]
fn test_add(){
  assert_eq!(add(3,4),7);
}

运行测试:
$cargo test
     Running target/debug/attribute_test-431700a6ad4b39fd

running 1 test
test test_add ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured

运行:
$cargo run 12 34
     Running `target/debug/attribute_test 12 34`
*** value = 46

解释一下:
* 从命令行获取的参数都是 string 类型;
* arguments中的第一个值是当前程序的名称,因此计算参数从arguments[1]和arguments[2]取;
* 在参数相加之前,使用 from_str 将字符转换为32位整型;
* 使用 use std::str::FromStr 引入 from_str 功能函数;
* from_str 返回的值是一个 Result 值,代表转换是否成功。通过Result的 expect 功能函数可以在出现错误的时候提示;如果没有错误返回正确的32位整型值。
......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-04-03 20:43:25  
编程语言 最新文章
Java面试题(1)
ReactiveX序列——RxSwift
C++STL之ACM相关知识大全
c++中vector向量几种情况的总结(向量指针,
SSH框架整合demo
JAX
UVA
curl备忘(1)
C#机房重构——万事开头难(二)
OJ刷题
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年1日历
2018-1-23 3:51:27
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --