Rust从入门到精通
我这个人不喜欢废话,本文基本都是干货(其实一开始是写给自己看的Cheat Sheet性质的笔记没想到越写越长),没必要展开的地方就不展开讲了,读者可自行参考The Rust Book和Rust Reference。基本上Part I就是搬运的The Rust Book,补上了若干细节,Part II是一些相对更「高级」的特性,可对照Rust Reference食用,Part III是全文的精髓,里面对Rust核心的ownership、borrow和lifetime机制的讨论,目前中文资料里还没有如此深入的(好像英文也没有,大家都是复读机,只会复读最基本的知识)。
Part I. Common Rust
Basics
首先看一下基本语法,在传统的C-like基础上引入了大量ML-Style语法:
- 注释:// this is a line comment,/* this is a block comment */- /// inner line doc,- /** inner block doc */: 这种注释用于为紧跟着的对象提供文档
- //! outer line doc,- /*! inner block doc */: 这种注释用于为父对象提供文档
- 文档注释支持Markdown语法
 
- ML风格变量声明
- let lhs = rhs;: Statement以分号结尾
- let x: u32;: 默认使用类型推导
- let mut y = 42;: 默认immutable,加- mut表示mutable
- let x = 3; let x = x * 2;: 支持Variable Shadowing
- let声明不是Expression,不能作为RHS
 
- 单独的const声明,不允许声明为mutable- const MAX: u32 = 100;: 必须提供类型annotation
- const允许在Global Scope声明,而- let不允许
- const只允许赋值Constant Expression,编译时无法确定的值不能赋值