これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の3日目の記事です。
Ruby の配列は任意の型のオブジェクトが入りますが、Crystal は特定の型しか入りません。
空配列を作ろうとするとエラーになります。
array = []
#=> Syntax error in eval:1: for empty arrays use '[] of ElementType'
空配列を作るには型(クラス)を指定しないといけません。
array = [] of Int32 または array = Array(Int32).new
複数の型のオブジェクトが入りうる配列を作るには次のようにします。
array = [] of Int32 | String または array = Array(Int32|String).new
配列には必ず要素の型が必要です。ということは、配列の配列の配列…のように深さが不定の配列は作れません。つらい。