type
Une déclaration type
dans une lib
déclare une sorte de typedef
C, mais plus puissant:
lib X
type MyInt = Int32
end
A la différence du C, Int32
et MyInt
ne sont pas interchangeables:
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
Ainsi, une déclaration type
est utile pour des types opaques qui sont créés par la librairie que vous êtes en train d'encapsuler.
Un exemple de ça est le type C FILE
, que vous pouvez obtenir avec fopen
.
Reportez-vous à la grammaire de type pour la notation utilisée dans les types typedef.