类型系统高级特性 #

一、类型别名 #

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