let:pattern destructure(模式解构)
rust
struct Person(String, i32);
struct Point {
x: i32,
y: i32,
}
fn foo() {
let p = Person(String::from("shibin"), 18);
let Person(name, age) = p;
println!("-------------------");
let p = Point { x: 10, y: 10 };
let Point { x, y } = p;
println!("x = {:?}", x);
}
类型别名
rust
type Age = u32;
fn main() {
let x : Age = 20;
}
// 别名 + 泛型
type Double<T> = (T, Vec<T>); // tuple,
静态变量
- 全局变量必须在声明的时候马上初始化;
- 全局变量的初始化必须是编译期可确定的常量,不能包括执行期才能确定的表达式、语句和函数调用;
- 带有mut修饰的全局变量,在使用的时候必须使用unsafe关键字。
rust
static GLOBAL: i32 = 0;