列挙型 (enum) と型エイリアス (type alias)
WaveはCに似た明示的な型システムを維持しながら、 可読性とABIの安定性のために型エイリアス(type alias)と 整数ベースの列挙型(enum)をサポートします。
型エイリアス (Type Alias)
概要
typeキーワードは既存の型に新しい名前を付けます。 これは新しい型を作るのではなく、完全な同値(エイリアス)です。
type MyInt = i32;
この宣言では、MyIntはi32と完全に同じ型です。
特徴
- ランタイムオーバーヘッドなし
- ABI上で完 全に同一
- コンパイル時にのみ存在
- enumのrepr型として使用可能
使用例
type Size = i64;
type Index = u32;
fun add(a: Size, b: Size) -> Size {
return a + b;
}