Dear,大家好,我是“前端小鑫同学”,长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~
最近在看一下桌面端利用的开发,在看了一些Electron的应用后又理解到了一个更加新鲜的Tauri的框架,它在外部应用到了Rust,同时发现最近的一些培训机构也在跟风推Rust的一些引流课程,所以还是须要理解和学习一下Rust的入门常识好反对后续学习Tauri。
疾速配置环境(Win11,64位):
[装置 Microsoft C++ 生成工具]():下载后双击装置即可,留神装置后须要重启电脑和装置版本倡议2019,如果电脑有装置2017的生成工具须要先卸载掉。
装置64位Rustup工具:同样是双击后开始装置,在装置完结后倡议将
C:\Users\用户名\.cargo\bin
配置到环境变量的Path中不便终端命令间接应用。查看是否装置胜利,咱们通常都是应用命令能查看到版本视为装置失常,咱们这里查看cargo的版本和rustc的版本。
- cargo 版本检测:
cargo --version
rustc 版本查看:
rustc --version
意识Cargo:
在咱们应用Rustup装置的时候默认就装置了Cargo,Cargo是用来构建和治理依赖包的一个工具,咱们列举一下Cargo的常用命令。
- cargo 版本检测:
序号 | 终端命令 | 性能 |
---|---|---|
1 | cargo new <xxx> | 创立我的项目并初始化git仓库 |
2 | cargo build | 编译我的项目(debug),减少--release公布构建 |
3 | cargo run | 编译我的项目(未编译或源码有批改)& 运行我的项目 |
4 | cargo check | 仅查看代码,确保可通过编译,比build速度快 |
6 | cargo publish | 公布自定义库 |
咱们能够在crates.io上找到咱们须要用到的第三方库,咱们也能够将本人编写的自定义库公布到crates.io。
编写代码前的筹备:
- VSCode相干插件
IntelliJ IDEA插件
注:我常常应用的编辑器就是这两种了,当然还有其余的一些编辑器也有相干的插件反对,能够拜访Rust文档。
应用Cargo创立新我的项目:
通过应用
cargo new hello-rust
来创立一个新的我的项目,上面是生成的目录构造;hello-rust|- Cargo.toml|- src |- main.rs
运行
cargo run
就能够在终端看到通过了编译执行到输入咱们相熟了Hello, world!。注:Cargo.toml文件中记录了项目名称,版本号,Rust版本和依赖的配置,等同于NodeJs开发中的package.json,Android开发中的AndroidManifest.xml。
Rust示例程序:
- 学会如何导入依赖;
- 学会如何输入语句应用;
- 理解什么是可变变量;
- 理解什么是关联函数;
意识
&
取地址符;代码详解:
// 应用use关键字导入规范库/其余库use std::io;fn main (){ // !代表是宏与函数不同 println!("请输出一个数字"); // 应用mut来申明可变变量,仅应用let定义的变量没方法二次赋值 // ::代表new是String的关联函数,类同Java或其余语言中的静态方法 let mut guess = String::new(); // 通过在规范库导入io模块来读取终端输出 // expect:会在程序异样时执行 // &guess:示意咱们在此应用guess的援用,它们指向内存的同一块空间 // &mut:示意此处的接管的援用也是可变的 io::stdin().read_line(&mut guess).expect("读取失败"); // 通过{}占位符来输入guess println!("输出的数字是:{}", guess);}
终端预览:
注:你会看到在咱们第二次执行cargo run
的时候没有Compiling信息的输入,这是因为咱们再次执行的时候没有源码被批改,正当缩小编译来放慢执行。装置和应用第三方依赖:
- 依赖的查找咱们下面有交代,能够通过crates.io搜寻;
- 将须要装置的依赖依照
依赖名 = version
的格局配置到Cargo.toml文件中的[dependencies]
下方; 更改配置文件后运行
cargo build
将执行装置,当然咱们装置了VSCode插件就主动装置实现了并会自动更新Cargo.lock文件来锁定依赖的具体版本,切勿手动批改。装置rand库来生成随机数:
- 将
rand = "0.8.4"
配置到[dependencies]
后期待插件装置或手动执行cargo build
; - 导入rand库
use rand::Rng;
编写随机数生成代码:
fn main() { let mut rng = rand::thread_rng(); // 1~100的随机数生成 let random_num = rng.gen_range(1..101); println!("生成随机数:{}", random_num)}
文档中的示例(https://rust-random.github.io/book/guide-values.html):
总结:
首次感觉Rust的语法跟其余的编程语言差异还是挺大的,不过&
取地址符的应用看起来会更清晰,也有感觉啰嗦的中央,后续还筹备写一些Rust的语法的应用来整体的体验一下这款高效,高牢靠的编程语言的设计。
欢送关注我的公众号“前端小鑫同学”,原创技术文章第一工夫推送。