メソッドの呼び出しをインスタンス変数が nil の場合に行う時の引数のとり方
メソッドの呼び出しをインスタンス変数が初期化されてないときにだけ行う方法として
def foo
@foo ||= foo_init
end
のような書き方がありますが、foo
が引数を取る時はどのように書くのが良いでしょうか?
現状は
def initialize
@foo = {}
end
def foo(arg)
@foo[arg] ||= foo_init(arg)
end
または
def foo(arg)
@foo = {} if foo.nil?
@foo[arg] ||= foo_init(arg)
end
としていますがもっと良い書き方はあるでしょうか?