一、C++ 环境
必须安装 C++ 环境,因为 Rust 依赖 C++ 编译环境,可以通过安装 Visual Studio 系列一步到位,版本不需要太高。其他方案为安装 x86_64-pc-windows-msvc、x86_64-pc-windows-gnu。
二、IDEA 插件
在插件商店搜索 “Rust” 即可,如图。
三、 Rust
下载之后直接运行,输入 1 回车即可。
四、环境验证
# 查看rust版本
rustc --version
# 查看cargo版本
cargo -V
# 更新rust
rustup update
# 卸载rust
rustup self uninstall
# 查看本地文档
rustup doc
五、创建项目
# 使用cargo创建项目
cargo new 项目名
# 编译,生成 EXE 可执行程序
cargo build
# 运行
cargo run
# 直接编译代码文件,生成 EXE 可执行程序
rustc hellorust.rs
六、修改 Rust 镜像源
# $CARGO_HOME/.cargo/ 下创建 config.toml
$ touch config.toml
# 添加以下内容
[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
七、学习资料
参考 Rust Course
八、变量与基本类型
类型 | 说明 |
数值 | > 有符号整数 ( > 无符号整数 ( > 浮点数 ( > 有理数、复数 |
字符串 | 字符串字面量和字符串切片 &str |
布尔 | true 和false |
字符 | 表示单个 Unicode 字符,存储为 4 个字节 |
单元 | 即 () ,其唯一的值也是 () |
Rust 基本类型
知道了 Rust 的基本类型,那怎样去定义某种类型的变量呢?
Rust 的变量命名跟其他语言无异,需要遵守相关规范,定义变量时通过关键字 let 实现,默认为不可变的变量,若需定义可变变量,则新增 mut 关键字修饰,示例如下:
fn main() {
// 定义不可变变量
let x: i32 = 5;
println!("The value of x is: {}", x);
// 尝试修改 x 的值会报错
// x = 6;
// 定义可变变量,默认情况下属于 i32 类型
let mut y = 6;
println!("The value of y is: {}", y);
// 修改 y 的值不会报错
y = 5;
// 类型推导,右边类型不能确定,报错
// let guess = "42".parse().expect("Not a number!");
// 类型不能推导时,需要显式指定
let guess = "42".parse::<i32>().expect("Not a number!");
// 或者 let guess: i32 = "42".parse().expect("Not a number!");
}
事实上,定义了变量并将某个对应类型的值赋予该变量的过程称为“变量绑定”,例如 let x: i32 = 5; 则是将数值 5 与变量 x 做绑定,这同样可以理解为赋值过程,但更准确的定义为绑定,因为这涉及 Rust 的核心原则——所有权。
可以这么理解,这是便于内存对象回收,我买了一张电话卡,绑定了自己的身份证,不再使用这种电话卡时,需要去营业厅注销这张卡,防止卡遗失后被坏人使用。内存对象(值)与某个变量绑定后,当变量不再使用时,内存对象(值)同时跟着释放,这种构思非常巧妙~