一、概述
Rust 是一门 静态类型语言、静态编译型语言,编译程序时需要知道所有变量的具体类型;
编译器可以优化代码,以提高速度;
存储数据没有任何开销,没有运行时或由于缺乏垃圾收集而突然暂停
Rust 使用了一种非常独特的内存管理手段,其核心理念基于 “所有权”(owernership)。 基本上,Rust 会追踪“谁”在读和写具体的一块内存。Rust 知道一块内存是谁在使用,也知道这块内存是否已经没人使用,这时可以立即释放这块内存。 Rust 在编译时强制内存规则,这个机制让内存 bug 几乎不会存在于运行时(runtime)。
二、Rust生态
- Rustc:是 Rust 的编译器,用来将源代码和生产二进制代码,变成一个或可执行文件。
- rustup:Rust 由工具 rustup 安装和版本管理。rustup 用于管理不同平台下的 Rust 构建版本并使其互相兼容。
- Cargo:是 Rust 的构建工具和包管理器,它可以用来构建、测试、发布等。
- ...
三、环境搭建
官方命令文档:doc.rust-lang.org/stable/carg…
1. 安装
通过 rustup 来安装 Rust,他不仅是个安装工具,还是一个版本管理工具
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
2. 配置环境变量
装好了 Rust 之后,我们还需要把它添加到环境变量中,这样才能使用相关命令。它在 ~/.cargo/bin 中,这个目录还包含了 rustc 、 cargo 、 rustup 等工具链。
export PATH="$HOME/.cargo/bin:$PATH"
3. 更新 Rust 和 工具链
rustup update
4. 更新 rustup 本身
除了 Rust 会发布新版本, rustup 也会发布新版本
rustup self update
5. 卸载 rust
rustup self uninstall
6. 切换渠道
点击展开内容 Rust 有三个不同的渠道:nightly 版本、beta版本、stable版本
- nightly 版本时每天在主版本上创建出来的版本,这个渠道上功能最多,更新最快,存在的问题可能性也大。新功能会在这个渠道中先开启,供用户使用。
- beta 版本每隔一段时间,将在 nightly 渠道中验证过的功能开放给用户使用。
- stable 版本就是正式版本,每隔6个星期发布一个新版本,最稳定、可靠,保证向前兼容。
# 安装 nightly 渠道
rustup install nightly
# 设置默认的渠道为 nightly
rustup default nightly
四、运行 Rust 文件
在命名规则上,Rust 文件总是以 .rs 扩展名结尾。
如果名字中包含多个单次,下划线隔开。
fn main() {
printIn!("hello, world!");
}
编译并运行 rs 文件
rustc main.rs # 编译(macOS生成 main文件;windows生成 main.exe文件)
./main # maxOS运行
hello, world! # 运行结果
五、Cargo:Rust的构建工具和包管理器
cargo 可以处理众多诸如构建代码、下载编译依赖库等繁琐但重要的任务
1. 安装 RLS(Rust Language Server)
RLS 是用来增强编辑器的工具,可以做到代码提示、跳转到定义、显示函数签名等信息。可以极大的提高开发效率。
rustup component add rls --toolchain nightly
rustup component add rust-analysis --toolchain nightly
rustup component add rust-src --toolchain nightly
Cargo: Rust的构建工具和包管理器
2. 检测是否安装cargo
cargo --version
3. 配置中科大镜像
安装好 Rust 之后,它的包管理工具 cargo 也是一并安装好了的。 Rust 第三方库也在国外,地址是 crates.io 。访问它同样比较慢,幸运的是中科大也提供了镜像,这样我们就可以用它来加速。
在 ~/.cargo 下创建一个 config 的文件,把如下内容复制进去
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
4. 创建新项目
cargo new rust_new && cd rust_new
编辑切换为居中
添加图片注释,不超过 140 字(可选)
5. 运行项目
cargo run // 编译并运行
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/rust_new`
6. 检测当前代码是否可通过编译
cargo check
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
7. 构建项目
7.1 模式1:常规构建
用于开发,它允许你快速地反复执行构建操作
cargo build // 编译代码
Compiling rust_new v0.1.0 (/Users/guodingru/Documents/learningDoc/rust_study/rust_new)
Finished dev [unoptimized + debuginfo] target(s) in 1.87s
7.2 模式2:以 Release 模式进行构建
用于构建交付给用户的最终程序,这种构建场景不会经常发生,但却需要生成的代码拥有尽可能高效的运行时表现
cargo build --release // 在优化模式下构建并生成可执行程序。
它生成的可执行文件会被放置在target/release目录下,而不是之前的target/debug目录下。
这种模式会以更长的编译时间为代价来优化代码,从而使代码拥有更好的运行时性能
8. 更新依赖包
cargo update