def hoge
@hoge ||= "一つの式"
end
インスタンス変数の遅延初期化に良く利用される書き方だが、代入したいものが一つの式で書けない場合もある。
複数の式(複数行)の場合は次のようになると思う。
def hoge
return @hoge if @hoge
foo = hogehoge
@hoge = foo * fugafuga
end
begin式を利用すれば次のように書ける。
def hoge
@hoge ||= begin
foo = hogehoge
foo * fugafuga
end
end