Crystal は宣言しただけだと値が未定義になってつらい

これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の13日目の記事です。

qiita.com

昨日の記事に書いたように Crystal は変数を初期化せずに宣言だけすることができます。

ですが、宣言だけだと値は未定義です。未定義のまま参照すると例外が発生したり Segmentation Fault になったりします。

class Hoge
  getter :hoge
  def initialize
    @hoge :: String
  end 
end

p Hoge.new.hoge
% crystal hoge.cr
Program exited because of a segmentation fault (11)

つらい…ような気もするけど、普通はこんなことしないから問題ないですね。