从 hello world 开始
1  | fn main() {  | 
- rust 的缩进是 4 个空格,不是 tab
 
编译你的第一个 rust 程序
1  | rustc main.rs  | 
编译成功后会生成一个二进制文件,在 windows 上还会生成一个 .pdb 文件以存贮调试信息。
Rust 是 ahead-of-time (预编译)的,所以编译后的二进制文件可以在没有 rust 环境的机器上运行。
rustc 命令可以用来编译一些简单的 rust 程序,但是对于大型项目,我们需要使用 cargo 来构建和管理项目。
Hello, Cargo!
Cargo 是 rust 的构建系统和包管理器。
用 cargo 创建一个新的项目:
1  | cargo new hello_cargo  | 
项目结构
1  | hello_cargo  | 
Cargo.toml
Cargo.toml 是一个配置文件,用来描述项目的元数据。
1  | [package]  | 
[package] 部分描述了包的元数据 - name: 包的名字 - version: 包的版本 - authors: 包的作者 - edition: rust 的版本
[dependencies] 部分描述了项目的依赖。
在 Rust 里,代码的包称作 crate.
cargo 的编译和运行
1  | cd hello_cargo  | 
编译成功后会生成一个 target 目录,里面包含了编译后的二进制文件。
1  | cargo run  | 
cargo run 会自动编译并运行程序。如果原代码没有修改且已经编译过,cargo run 只会运行二进制文件。
cargo 的检查
1  | cargo check  | 
cargo check 只会检查代码是否能编译通过,但不会生成二进制文件。
cargo 的发布
1  | cargo build --release  | 
–release 参数会生成一个优化后的二进制文件,但编译时间会更长。
let mut 和 use
prelude(预导入)模块会被自动引入到每个 rust 程序的作用域中。但如果你想使用的模块不在 prelude 中,你需要使用 use 关键字来引入。
1  | use std::io;  | 
let 关键字可用于申明一个变量,变量默认是不可变的(imutable)。如果你想申明一个可变的变量,你需要额外使用 mut 关键字。
1  | let mut foo = 1;  |