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位整型值。

最新文章

  1. JQuery中的DOM操作
  2. 从数据库导出数为生成excel表
  3. ArrayList中元素去重问题
  4. COM组件入门(一)
  5. 修改UISearchBar placeholder textColor
  6. CouchDB简单应用
  7. PAT (Advanced Level) 1043. Is It a Binary Search Tree (25)
  8. Java设计和实现方法
  9. salesforce零基础学习(八十七)Apex 中Picklist类型通过Control 字段值获取Dependent List 值
  10. linux路由
  11. js判断移动端是否安装某软软件,安装直接打开相应的链接,否则跳转到下载商店方法
  12. jquery单击事件的写法
  13. 公众号及H5支付
  14. Qt 获取文件夹下所有文件
  15. vue的使用1
  16. 【POJ1741】Tree
  17. HBuilder-svn安装与使用【原创】
  18. jenkins编辑报错Exception when publishing, exception message的解决办法
  19. React native中的组建通知通信:
  20. 【Python】【fmt】

热门文章

  1. EF6 MVC5译文
  2. TurboLinux11system»adjtimex简介
  3. pytest文档9-参数化parametrize
  4. appium+python自动化52-多点触控MultiAction
  5. java获取系统进程号
  6. iOS:CoreData数据库的使用三(数据库和tableView表格一起使用)
  7. 挑战黑客极限:Pwn2Own 2015成史上“最难”黑客大赛
  8. 使用CSS3实现的player播放按钮
  9. 在JavaScript文件中读取properties文件的方法
  10. java怎么删除List中的指定元素