环境搭建
Rust入门是真jb难啊
rust学习资料
[Rust在线编译器](Rust Playground)
1.安装MSVC
MSVC是由微软在Windows系统上定制的C/C++编译器,而Rust需要依赖这个编译器进行编译,生成可执行文件。
进入以下页面:

点击“下载生成工具”,此时你会得到一个叫做“vs_BuildTools”的可执行程序。
双击运行它,进入一个Visual Studio Installer页面,点击"继续",进入以下页面:

选择"使用 C++ 的桌面开发",右侧的可选项默认勾选即可,这个程序默认安装到C盘,如果C盘不够大,可以在顶部"安装位置"部分修改:

确认安装路径完毕后,点击右下角"安装"。

等到进度条跑完,就成功安装了,这需要一段时间。

2.安装Rust
进入Rust官网


直链下载:
安装之后打开文件会出来一个终端界面,直接按enter

安装成功之后终端输入cargo,出现如下界面即为安装成功

3.更新rust
Rust 的升级非常频繁。如果您安装 Rustup 后已有一段时间,那么很可能您的 Rust 版本已经过时了。运行 rustup update 获取最新版本的 Rust。
4.卸载rust
如果你觉得rust太难了,那么现在就可以运行rustup self uninstall卸载
8.查看rust版本
如下指令可以查看rust版本
rustc --version- 结果格式:
rustc x.y.z (abcabcabc yyyy-mm-dd) - 一会显示最新稳定版的:版本号、
commit hash、commit日期
6.本地文档
安装Rust的时候,还会在本地安装文档,可离线浏览
运行 rustup doc 可在浏览器打开本地文档

但这是英文的,那我哪能看得懂
7.编译和运行rust程序
7.1 创建rust文件
我们以后使用vscode来编写rust项目
先在一个文件夹中创建一个rust文件,以.rs为后缀

并写入以下内容
fn main(){
println!("hello world!")
}7.2 编译程序
终端中使用rustc main.rs来编译这个rust程序
编译好之后,根目录会出现两个二进制文件
- main.exe(windows),main(Linux/mac):可执行程序,windows系统中有exe后缀,其他两个系统中没有后缀
- main.pdb:包含调试信息,只在windows系统中生成

然而这只是编译好了我们的程序,还没有运行
7.3 运行程序
想要运行,我们需要打开该程序的文件夹,在地址栏输入cmd回车打开终端(vscode的终端不行)
然后再终端中输入main.exe(可不加后缀)
即可打印出我们刚才输入的hello world

7.4 程序解析
定义函数:fn main() {}
没有参数,没有返回值
main函数很特别:它是每个Rust可执行程序最先运行的代码
打印文本:println!("Hello, world!");
Rust的缩进是4个空格而不是tab
printIn!是一个 Rust macro(宏),不是函数,如果是函数的话,就没有感叹号!“Hello World”是字符串,它是
println!的参数这行代码以;结尾,rust中每行代码都应以
;结尾,除了最后一行
编译和运行是单独的两步
- 运行 Rust程序之前必须先编译,命令为:
rustc 源文件名
编译成功后,会生成一个二进制文件
- 在Windows上还会生成一个
.pdb文件,里面包含调试信息
Rust 是 ahead-of-time 编译的语言
- 可以先编译程序,然后把可执行文件交给别人运行(无需安装Rust)
rustc 只适合简单的 Rust 程序,真正开项目还是的用cargo
8.Cargo
Cargo是Rust 的构建工具和包管理器
在安装Rustup后,Cargo会一块被安装到你的电脑中
以下是一些常用且简单的指令
cargo new <rust_project_name> # 创建一个rust项目
cargo build # 构建rust项目
cargo run # 可以运行项目
cargo test # 可以测试项目
cargo doc # 可以为项目构建文档
cargo publish # 可以将库发布到 crates.io。要检查您是否安装了 Rust 和 Cargo,可以在终端中运行:
cargo --version更多cargo指令可访问:简介 - Cargo 手册 中文版
9.Cargo创建rust项目
9.1 创建项目
使用cargo new指令创建一个项目
cargo new rust-test就会创建好如下项目

其目录结构如下
rust-test
|- Cargo.toml
|- src
|- main.rsTOML(Tom's Obvious, Minimal Language)格式,是 Cargo 的配置格式,其中包含了项目的元数据和依赖库。
[pacakge],是一个区域标题,表示下方内容是用来配置包(package)的
- name,项目名
- version,项目版本
- authors,项目作者
- edition,使用的 Rust版本
[dependencies],另一个区域的开始,它会列出项目的依赖项。
在 Rust里面,代码的包称作 crate。
src/main.rs 为编写应用代码的地方,让我们看看main.rs文件的内容
fn main() {
println!("Hello, world!");
}里面只有一个main()函数,并且在里面打印了Hello, world!,从而可以知道
rust中定义函数需要使用fn关键字main()函数为主函数- 可以用
println!()函数打印内容
9.2 构建项目
执行cargo build命令可构建项目
- 创建可执行文件:target/debug/hello_cargo(Linux/mac) 或target\debug\hello_cargo.exe(Windows)
- 运行可执行文件:./target/debug/hello_cargo(Linux/mac) 或.\target\debug\hello_cargo.exe(Windows)
第一次运行cargo build会在顶层目录生成cargo.lock文件
- 该文件负责追踪项目依赖的精确版本
- 不需要手动修改该文件
9.3 构建并运行
若想一部到位,构建并运行,可以执行以下命令
cargo run该命令可编译代码+执行结果,如果之前编译成功过,并且源码没有改变,那么就会直接运行二进制文件
运行效果如下

9.4 检查代码
cargo check指令可检查代码,确保能通过编译,但是不产生任何可执行文件
cargo check 要比 cargo build 快得多
- 编写代码的时候可以连续反复的使用cargo check检查代码,提高效率
9.5 为发布构建
cargo build --release
- 编译时会进行优化,代码会运行的更快,但是编译时间更长
- 会在 target/release 而不是 target/debug 生成可执行文件
两种配置:
- 一个开发
- 一个正式发布
9.6 添加依赖
在crates.io中,可以找到关于Rust的所有依赖库,在Rust中,通常把包称作crates
要在项目中添加库,只需要在Cargo.toml文件中写入如下代码,本案例使用的是名为ferris-says的库,ferris-says可以在控制台中打印一只螃蟹
[dependencies]
ferris-says = "0.3.1"dependencies意思为依赖项,想要添加其他依赖项,都需要下[dependencies]下书写
[dependencies]
aaa = "0.3.1"
bbb = "1.2.1"
ccc = "1.3.1"
# .......接着运行:
cargo build…之后 Cargo 就会安装该依赖。
运行此命令会创建一个新文件 Cargo.lock,该文件记录了本地所用依赖库的精确版本。
要使用该依赖库,我们可以打开 main.rs,删除其中所有的内容(它不过是个示例而已),然后在其中添加下面这行代码:
use ferris_says::say;这样我们就可以使用 ferris-says crate 中导出的 say 函数了。
修改main.rs的内容如下
use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};
fn main() {
let stdout = stdout();
let message = String::from("Hello fellow Rustaceans!");
let width = message.chars().count();
let mut writer = BufWriter::new(stdout.lock());
say(&message, width, &mut writer).unwrap();
}运行cargo run 运行项目
可以看到控制台中打印了一直螃蟹,至于上面代码写的都是什么鸟玩意,先不管,慢慢往后学

