1

我基本上想知道这样做最惯用的方法是什么:

@var ||= lambda {
  #some expression here to generate @var
}.call
4

1 回答 1

1

您可以使用多行块来实现这种记忆。

@result ||= begin
   # The return value in here will be assigned to @result.
end

这种语法可以分为两种方法。

def result
  @result ||= generate_result
end

def generate_result
  # Do the heavy lifting here
end

编辑这些 stackoverflow 答案也可能有帮助。

于 2013-04-03T20:18:41.593 回答