前言#
前面配置好了开发环境以及开发工具拓展,现在赶紧开始学习啦~
官方文档#
我们跟着官方文档的来
The Rust Programming Languagedoc.rust-lang.org/book/
另外官方社区是一个很重要的地方,有问题网上不一定找得到,可以到社区里问下。
Communitywww.rust-lang.org/community
另外如果没有配置编译环境可以直接online study
Rust Playgroundplay.rust-lang.org/
Hello World#
任何语言的入门第一件事自然就是hello world~
mkdir rust-study
mkdir rust-study/day1
cd rust-study/day1
echo > main.rs
rust`文件后缀都是`.rs
fn main() {
println!("hello, world!");
}fn: 函数声明。main: 函数名。(): 可用于接收参数。{}: 之间是函数体,函数作用域。
然后终端执行(如果是linux或者macOS则编译后执行./main)
rustc main.rs
./main.exe
println!(): 基础打印rustc main.rs会编译输出main.exe以及main.pdb两个文件,window系统执行exe文件,而.pdb后缀文件是vs编译时生成的,可用来调试。

Hello Cargo#
cargo[3]是rust的构建系统以及包管理器,相当于Node的npm。
前面我们是手动创建文件的,而且是单文件,现在我们来搞个demo project。官方也是推荐直接创建project,毕竟绝大部分情况下都需要引入依赖等。
cargo new hello_cargo
cd hello_cargo
main.rs:cargo构建默认入口,不需要配置。Cargo.toml: 配置文件,如果有包需要引入,那么就需要在这里配置。TOML: 一种配置文件格式(Tom's Obvious Minimal Language)。
Tom's Obvious Minimal Languagetoml.io/en/
默认代码文件都存放在src文件夹下,而最外层根目录仅放REMDME、配置文件以及协议声明等与你项目业务无关的玩意儿。
main.rs
默认main是整个项目的入口,所以整个项目入口是main.rs的main函数。
Cargo.toml
这个文件内容一目了然,就不多说了。
来构建下
cd hello_cargo
cargo build
默认输出在target文件夹,同时在根目录会生成Cargo.lock文件,类似package.lock。
然后执行./target/debug/hello_cargo.exe(linux或者macOS不需要.exe);

当然这样太麻烦了,每次都得先生成exe文件再执行,官方提供了一步到位的指令cargo run
cargo run 
这里可以看到dev时间是0.00s,这是因为我们并没有做任何改动,所以对于cargo来说只需要重新执行一次.exe二进制文件即可。
但对于开发来说,我们有时候只是想要知道我们的代码有没有问题,能否通过编译,这个时候rebuild也可以,但是有些资源浪费。官方显然也知道这点,所以提供了一个指令cargo check。专门用来check代码。

时间差了好几十倍。
然后我们来试下发布[4]
cargo build --release
发布构建后会在target文件夹中生成release文件夹。
debug相当于development 这个mode。
而release相当于production这个mode。
参考#
- ^rust-hello-world https://doc.rust-lang.org/stable/book/ch01-02-hello-world.html#hello-world
- ^rust-hello-cargo https://doc.rust-lang.org/stable/book/ch01-03-hello-cargo.html#hello-cargo
- ^cargo https://doc.rust-lang.org/cargo/
- ^cargo-release https://doc.rust-lang.org/stable/book/ch01-03-hello-cargo.html#building-for-release
发布于 2022-11-23 23:32・IP 属地广东
