プログラミング言語 Crystal

Crystal の日本語ドキュメントはしばらく更新されておらず情報が古くなっているため、できるだけ原文の英語ドキュメントで最新の情報を参照ください。

翻訳にご協力いただける方は翻訳プロジェクトの issue や Crystal-JP の Slack からお知らせください。

エイリアス (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
  ifdef x86_64
    alias SizeT = Int64
  else
    alias SizeT = Int32
  end

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

alias の型を設定する際の記載方法については型文法を参照してください。