Haxe入門 / 型

目次に戻る

2. Types

Haxeコンパイル時に型関連のエラーを検出できる素晴らしい型システムを持っている。 Stringによる分割(Stringを引数にとる文字列分割?)や、Intergerのフィールドへのアクセス、あるいは引数の数が足りない(もしくは多い)関数呼び出しといったような、型の不一致は不正な操作である。

他の言語では、この型システムの恩恵を得るために冗長な書き方になることがある。変数の型宣言とコンストラクタ呼び出しの両方で型名を明示的に書かなければならなかったりする。

var myButton:MySpecialButton = new MySpecialButton(); // As3

(Haxe manualではC++も載ってたがC++にはすでにautoによる型推論があるので外した)

Haxeでは型宣言で明示的に型名を書く必要はない。コンパイラは型を推論できる。

var myButton = new MySpecialButton(); // Haxe

詳しくは型推論の項で触れる。上の例でmyButtonMySpecialButtonクラスのインスタンスと推論されているとわかれば今は十分。

Haxeには次の7グループの型がある。

  • クラスインスタンス
  • 列挙インスタンス
  • 構造体
  • 関数
  • 動的型: 他のどの型にも適合するようなやつ
  • 抽象型: コンパイル時での型、実行時には別の型になってる。
  • Monomorph(訳語が思いつかない): 未定型(でしょうか?)。途中で別の型になるかもしれないとか。

目次に戻る