コンテンツにスキップ

型エイリアス (alias)

lib の中で alias を宣言することで C typedef が宣言できます。

lib X
  alias MyInt = Int32
end

これで Int32MyInt は相互に交換可能になります。

lib X
  alias MyInt = Int32

  fun some_fun(value : MyInt)
end

X.some_fun 1 # OK

alias が便利なのは、長い型名を何度も書かずに済むようにできることに限らず、コンパイル時のフラグに基づく型宣言にも利用できます。

lib C
  {% if flag?(:x86_64) %}
    alias SizeT = Int64
  {% else %}
    alias SizeT = Int32
  {% end %}

  fun memcmp(p1 : Void*, p2 : Void*, size : C::SizeT) : Int32
end

この宣言の型を指定方法については型の文法を参照してください。