Rust
参考链接
进入 Rust 编程世界 - Rust语言圣经(Rust Course)
编程环境:
- Vscode
- rust(vscode插件)
- rust-analyzer(vscode插件,用于rust)
- Even Better TOML(vscode插件,用于toml文件)
Cargo
cargo 提供了一系列的工具,从项目的建立、构建到测试、运行直至部署,为 Rust 项目的管理提供尽可能完整的手段。同时,与 Rust 语言及其编译器 rustc 紧密结合,可以说用了后就忘不掉,如同初恋般的感觉。
使用cargo创建一个项目
1 | cargo new world_hello |
上述命令创建了一个cargo项目,该项目由cargo管理,创建好的项目结构如下
1 | $ tree |
运行
运行cargo程序有两种方法
- cargo run
- 手动运行
cargo run
1 | cargo run |
手动运行
编译
1 | cargo build |
运行
1 | ./target/debug/world_hello |
当我们使用使用上面两种方法运行的时候,,编译速度会非常快,但是运行速度就很慢,因为是在debug模式下,所以我们可以使用--release命令
1 | cargo run --release |
Cargo check
cargo check 是我们在代码开发过程中最常用的命令,它的作用很简单:快速的检查一下代码能否编译通过。因此该命令速度会非常快,能节省大量的编译时间
1 | cargo check |
Cargo的配置文件
Cargo.toml 和 Cargo.lock 是 cargo 的核心文件,它的所有活动均基于此二者。
Cargo.toml是cargo特有的项目数据描述文件。它存储了项目的所有元配置信息,如果 Rust 开发者希望 Rust 项目能够按照期望的方式进行构建、测试和运行,那么,必须按照合理的方式构建Cargo.toml。Cargo.lock文件是cargo工具根据同一项目的toml文件生成的项目依赖详细清单,因此我们一般不用修改它,只需要对着Cargo.toml文件撸就行了。
什么情况下该把
Cargo.lock上传到 git 仓库里?很简单,当你的项目是一个可运行的程序时,就上传Cargo.lock,如果是一个依赖库项目,那么请把它添加到.gitignore中。
现在用 VSCode 打开上面创建的"世界,你好"项目,然后进入根目录的 Cargo.toml 文件,可以看到该文件包含不少信息:
package 配置段落
package 中记录了项目的描述信息,典型的如下:
1 | [package] |
name 字段定义了项目名称,version 字段定义当前版本,新项目默认是 0.1.0,edition 字段定义了我们使用的 Rust 大版本。因为本书很新(不仅仅是现在新,未来也将及时修订,跟得上 Rust 的小步伐),所以使用的是 Rust edition 2021 大版本,详情见 Rust 版本详解
定义项目依赖
使用 cargo 工具的最大优势就在于,能够对该项目的各种依赖项进行方便、统一和灵活的管理。
在 Cargo.toml 中,主要通过各种依赖段落来描述该项目的各种依赖项。引入依赖项有三种方法:
- 基于 Rust 官方仓库
crates.io,通过版本说明来描述 - 基于项目源代码的 git 仓库地址,通过 URL 来描述
- 基于本地项目的绝对路径或者相对路径,通过类 Unix 模式的路径来描述
这三种形式具体写法如下:
1 | [dependencies] |