- 程序入口:
src/main.rs或src/bin/*.rs中的 main 函数 - 依赖单元:一个源文件(项目内部依赖才需手动导入,外部依赖由 Cargo.toml 导入)
- 依赖导入:符号限定于模块路径
- 依赖导出:
pub声明 依赖初始化- 依赖管理:cargo
pub mod fileordir;
use create::fileordir::foo;
use fileordir::{self, foo, bar};
use super::*;- 变量类型:引用型强类型
- 作用域:块作用域
{} - 所有权:一个实例可以有多个所有者
- 生命周期:引用计数为零时销毁
let foo = other;
let mut foo = other;
let foo: Type = other;
let mut foo: Type = other;enum Enum {
ZERO = 0,
ONE,
TWO,
}
let e: Enum = Enum::ZERO;- 单后:
::,.,[],() - 单前:
*,+,- - 算数:
**,*,/,%,+,- - 关系:
<,<=,>,>=,==,!=,is - 逻辑:
not,and,or - 赋值:
= - 其他:
!,?
-
分支
// branches if condition { // ... } else { // ... } // two branches for single expression if let pattern = expr { // ... } else { // ... } // multiple branches for single expression match expr { pattern => {...}, pattern => expr, _ => expr }
-
循环
// infinite loop loop { // ... } // loop with condition while condition { // ... } // loop with pattern while let pattern = expr { // ... } // loop for iterator for elem in iterator { // ... } // loop label label: continue; continue label; break; break label; break expr;
- 默认实参
函数重载- 泛型
参数包
fn return_nothing() {
()
}
fn normal_function(
a1: int,
a2: uint = 1,
{
a3: mut str,
a4: str = "default",
}) -> char {
// ...
}
let closure_v1 = (x) { x + 1 };
let closure_v2 = (x: int) -> int { x + 1 };- 访问控制:
pub - 构造控制:一般通过工厂函数构造实例
- 析构控制:
Drop - 拷贝控制:
Clone - 比较操作:
Eq,Ord,PartialEq,PartialOrd(比较字段) - 语言扩展:通过 trait 实现