类型系统高级特性 #
一、类型别名 #
rust
type Kilometers = i32;
type Thunk = Box<dyn Fn() + Send + 'static>;
fn main() {
let distance: Kilometers = 100;
println!("{}", distance);
}
二、Never 类型 #
rust
fn bar() -> ! {
loop {
// 永不返回
}
}
三、动态大小类型 #
rust
fn main() {
let s1: &str = "hello";
let s2: &str = "world";
}
四、Newtype 模式 #
rust
struct Millimeters(u32);
struct Meters(u32);
impl Millimeters {
fn from_meters(m: Meters) -> Self {
Millimeters(m.0 * 1000)
}
}
五、总结 #
本章学习了:
- 类型别名
- Never 类型
- 动态大小类型
- Newtype 模式
最后更新:2026-03-27