我基本上想知道这样做最惯用的方法是什么:
@var ||= lambda {
#some expression here to generate @var
}.call
您可以使用多行块来实现这种记忆。
@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 答案也可能有帮助。