工欲善其事,必先利其器。第一节我们先来配置rust需要的环境和安装趁手的工具,然后写一个简单的小程序。
Rust 官方有提供一个叫做 rustup 的工具,专门用于 rust 版本的管理,网址是:https://rustup.rs/,提供了很多实用的功能。 不过在这之前,我们需要先做一个配置。
因为一些特殊原因,rustup 官方源在中国大陆境内访问速度很慢,因此需要配置一个国内的源,主要有字节和中科大的,这里我们配置字节的源:https://rsproxy.cn/,从而加速访问。
接下来,这两行加入到你的 shell 配置文件(~/.zshrc 或者 ~/.bashrc)的末尾:
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
然后 reload 或者 source 一下你的配置文件,让配置生效。
source ~/.bashrc
然后,还需要创建一个cargo的配置文件,依次执行以下命令
mkdir -p ~/.cargo
cd ~/.cargo
touch config
然后将以下几行放到你的~/.cargo/config文件中:
[source.crates-io]
replace-with = 'rsproxy'
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true
然后,执行以下命令:
curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
然后一路回车(默认)就好,最后执行一下:
source "$HOME/.cargo/env"
rust的ide有很多:Visual Studio Code、IntelliJ IDEA、 CLion、Rust-analyzer等,社区主流的是VSCode 和 rust-analyzer组合。VSCode 的安装直接参照官方说明就好:VSCode QuickStart
打开 VSCode 后,我们按照 https://rust-analyzer.github.io/ 这里的 QuickStart 说明,在 MarketPlace 中下载并安装一下 rust-analyzer。
好了,大功告成。
最后的最后,强烈推荐大家安装一个初学者神器——chatgpt - Bito:一个代理了chatgpt的插件,学习过程中遇到的任何问题都可以问它。
接下来,我们就要进入到真正的 Rust 实战中啦。 首先要介绍下rust的项目管理工具:Cargo,Rust 社区使用 Cargo 来作为包管理和构建工具,之后的所有示例都会以 Cargo 作为我们使用的工具。
先输入以下命令,来创建我们的项目目录:
cargo new practice-01
然后,我们用 VSCode 打开这个目录,这时候 practice-01 目录应当如下:
practice-01
├── Cargo.lock # Cargo 依赖版本锁定文件
├── Cargo.toml # Cargo 主要设置文件
└── src
└── main.rs # Rust 程序入口
然后,我们在 main.rs 中加入以下代码(一定要自己手动敲,感受下rust语法):
use std::io;
fn main() {
println!("Hello!");
loop {
let mut input = String::new();
io::stdin()
.read_line(&mut input)
.expect("Failed to read input!");
if input.contains("quit") {
break;
}
i_say_what_u_say(input)
}
}
fn i_say_what_u_say(str: String) {
print!("{}", str)
}
好,接下来我们编译下代码,看看输出
cargo build
// 输出
Finished dev [unoptimized + debuginfo] target(s) in 0.06s
上面结果表示构建成功了,我们在文件目录下也能看到一个target文件夹,就是刚刚编译好的文件。 目录结构如下
practice-01
├── Cargo.lock # Cargo 依赖版本锁定文件
├── Cargo.toml # Cargo 主要设置文件
├── targe # 编译后文件存放的目录
└── src
└── main.rs # Rust 程序入口
然后再运行程序:
cargo run
// 输出
Finished dev [unoptimized + debuginfo] target(s) in 0.00s
Running `target/debug/practice-01`
好,接下来我们试试输入一些内容,看看会发生什么:
Hello!
hi
hi
hhhhh
hhhhh
who are u?
who are u?
完美! 这样,我们就完成了我们自己写的第一个 Rust 程序啦。
but 等等,到这里相信大家还是一脸问号, 大括号我能理解,叹号个什么鬼? 重要的冒号(:说两遍??别着急,下一章给大家答案。