type¶
lib
内のtype
宣言は、Cのtypedef
の一種を宣言しますが、より強力です。
lib X
type MyInt = Int32
end
Cとは異なり、Int32
とMyInt
は交換可能ではありません。
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型で使用される表記法については、型文法を参照してください。