别名

type 语句用于为现有类型创建新名称。类型名必须使用 UpperCamelCase(大驼峰)命名,否则编译器会发出警告。此规则的例外是原始类型,如 usizef32 等。

// `NanoSecond`、`Inch` 和 `U64` 都是 `u64` 的新名称。
type NanoSecond = u64;
type Inch = u64;
type U64 = u64;

fn main() {
    // `NanoSecond` = `Inch` = `U64` = `u64`。
    let nanoseconds: NanoSecond = 5 as u64;
    let inches: Inch = 2 as U64;

    // 注意,类型别名*不会*提供额外的类型安全性,因为别名*不是*新类型
    println!("{} 纳秒 + {} 英寸 = {} 单位?",
             nanoseconds,
             inches,
             nanoseconds + inches);
}

别名的主要用途是减少重复代码。例如,io::Result<T> 类型是 Result<T, io::Error> 类型的别名。

另请参阅:

属性