入门者,在搭建好环境好之后,接下来得先熟悉工具。有了趁手的工具,学起来才会快得多!
作为入门者,非常希望能够单独运行一个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 添加/注入一个依靠
创建一个脚本 ,部分如下:- /**
- * cargo script -d rand 2.1guessGame.rs
- */
- extern crate rand;
- use std::io;
- use rand::{thread_rng, Rng};
- use std::cmp::Ordering;
- fn main(){
- println!("猜猜数字");
- let secret_str =rand::thread_rng().gen_range(1..101);
- //let s: String = secretStr.to_string();
- println!("输入猜测的次数");
- let mut gts=String::new();
- io::stdin().read_line(&mut gts).expect("读取失败");
- 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
第一次可能很慢,你会猜疑是不是卡死了,后来一看官方说明,了解了:- 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企服之家,中国第一个企服评测及商务社交产业平台。 |