rust学习二、入门之运行单个脚本

打印 上一主题 下一主题

主题 817|帖子 817|积分 2451

入门者,在搭建好环境好之后,接下来得先熟悉工具。有了趁手的工具,学起来才会快得多!
作为入门者,非常希望能够单独运行一个rust脚本,而没有必要一个练习就创建一个项目。
在https://crates.io上,我们可以找到各种各样的工具,有两个可以关注:

  • cargo-script  ,很不幸的是,这个项目自从2017年之后就么有更新了,以是把握重要的方法即可。
  • rust-script,最近尚有更新.保举用这个。
 
有了这些工具,即使没有ide环境,也可以非常轻易学习基本的rust代码!
为了节约篇幅,以下称为script或者脚本命令。
script的安装非常轻易:

  • cargo install cargo-script  
  • cargo install rust-script
 
cargo-script的官网地址:GitHub - DanielKeep/cargo-script: Cargo script subcommand
run-scipt 官网地址:https://github.com/fornwall/rust-script  ,https://rust-script.org/
 
注意有个和cargo-script很类似的东西是script,不要搞错。
一、cargo-script的作用

通过命令行大概可以知道script有什么作用
cargo help script

注意:如果没有安装cargo-script,那么是不会出现这个命令选项的。
 
各个选项/标记都很有用。重点介绍下选项部分
-d  添加一个外部依靠
-D 添加一个宏依靠
-x  添加一个宏
-t  使用模板
-l 从标准输入获取脚本,并每行执行一次
- 把脚本当做字面表达式执行
 
二、cargo-script示例

2.1单独运行一个rs且不附加依靠


 
这是最常见的语法,非常得当在无需额外依靠的情况,非常适用于初学者用来练习rust的基本知识。
此外上面的命令等价于下面这个:
cargo-script script 2.2mut_immt.rs
鉴于这个要输入更多字符,不如用cargo script xxx 更省事一些。
 
2.2 添加/注入一个依靠

创建一个脚本 ,部分如下:
  1. /**
  2. * cargo  script -d rand 2.1guessGame.rs
  3. */
  4. extern crate rand;
  5. use std::io;
  6. use rand::{thread_rng, Rng};
  7. use std::cmp::Ordering;
  8. fn main(){
  9.         println!("猜猜数字");
  10.         let secret_str =rand::thread_rng().gen_range(1..101);
  11.         //let s: String = secretStr.to_string();
  12.         println!("输入猜测的次数");
  13.         let mut gts=String::new();
  14.         io::stdin().read_line(&mut gts).expect("读取失败");
  15.         let gts: u32=gts.trim().parse().expect("请输入一个数字");
复制代码
 
注意,没有其它什么配置。现在就希望在它地点目录执行(如果执行 cargo  run)
则可以如下:


 
-d 可以添加一个依靠
-x 注入一个外部的crate(程序包)
三、rust-script

安装  cargo install rust-script

 
3.1 查看资助


尚有许多,不浪费篇幅了。
某种程度上和cargo-script尚有不少相似之处,二者应该有某种关联的。
 
3.2 运行一个脚本-不带外部依靠

rust-script   3.2_compoundtype复合.rs

如果不带依靠,速率还行。
 
3.3 运行一个脚本-带外部依靠

和cargo-script很像
rust-script  -d rand 2.1guessGame.rs

第一次可能很慢,你会猜疑是不是卡死了,后来一看官方说明,了解了:
  1. Under the hood, a Cargo project will be generated and built (with the Cargo output hidden unless compilation fails or the -c/--cargo-output option is used). <br><strong>The first invocation of the script will be slower as the script is compiled</strong> <br>- subsequent invocations of unmodified scripts will be fast as the built executable is cached.
复制代码
3.4直接执行一个表达式

固然用的少,偶然照旧会用用,语法:
rust-script -e "xxxx"   
-e 选项可以结合其它选项一起使用,例如 -d,可以注入模块
 
例-执行单句且注入外部的模块
rust-script -d time -e  "time::util::is_leap_year(2024)"
输出true
例-执行多条语句
rust-script -e "{let a=10; let b=20;a+b}"
输出 30;
为了避免乱七八杂的麻烦,可以使用{}
 
四、小结

cargo-script是获取非常方便,使用也很方便的工具,但是过时了。应该使用run-script
不过不需要单步调试,run-script已经是一个不错的工具
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张国伟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表