コンテンツへスキップ

type

lib内のtype宣言は、Cのtypedefの一種を宣言しますが、より強力です。

lib X
  type MyInt = Int32
end

Cとは異なり、Int32MyIntは交換可能ではありません。

lib X
  type MyInt = Int32

  fun some_fun(value : MyInt)
end

X.some_fun 1 # Error: argument 'value' of 'X#some_fun' must be X::MyInt, not Int32

したがって、type宣言は、ラップしているCライブラリによって作成される不透明な型に役立ちます。この例としては、fopenで取得できるCのFILE型があります。

typedef型で使用される表記法については、型文法を参照してください。