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 的语法的应用来整体的体验一下这款高效,高牢靠的编程语言的设计。
欢送关注我的公众号“前端小鑫同学”,原创技术文章第一工夫推送。