エイリアス
type
文を使用することで既存の型に新しい名前を付けることができます。その場合、名前はUpperCamelCase
でなくてはなりません。さもなくばコンパイラがエラーを出します。唯一の例外はusize
やf32
のような基本データ型です。
// `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 = {} unit?", nanoseconds, inches, nanoseconds + inches); }
このようにエイリアスを付ける一番の理由はボイラープレートを減らすことです。例えばio::Result<T>
型はResult<T, io::Error>
の別名です。