假设我有这样的代码返回retval()如果retval() - 有没有一种方法可以在Ruby中写入没有调用retval函数两次?
def retval
# some resource intensive computation
return whatever
end
def foo
...
return retval if retval
...
end
有没有办法重组,如此RETVAL不叫了两次,没有做
def foo
...
x = retval
return x if x
...
end
不错,memoization是一个伟大的建议,我没有想到,但在我的情况'retval'将在不同的情况下返回不同的结果,所以我不能只是做这种结果缓存。即,下一次控制通过'foo'时,我需要重新评估。 – Purplejacket