私は基本的に、これを行うための最も慣用的な方法を知りたいです:
@var ||= lambda {
#some expression here to generate @var
}.call
私は基本的に、これを行うための最も慣用的な方法を知りたいです:
@var ||= lambda {
#some expression here to generate @var
}.call
複数行ブロックを使用して、この種のメモ化を実現できます。
@result ||= begin
# The return value in here will be assigned to @result.
end
この構文は、2 つの方法に分けることができます。
def result
@result ||= generate_result
end
def generate_result
# Do the heavy lifting here
end
編集:これらのstackoverflowの回答も役立つ場合があります。