2011-09-22 159 views
1

“延迟加载”和“延迟评估”(两者都是Stack Overflow上的标记)还是有区别吗?懒惰加载和懒惰评估有什么区别?

对评论的回应:标记维基(我在提问前曾看过)有前者指延迟初始化,另一个则谈到延迟评估。是否可以初始化某些内容而不进行评估?

+4

只有当他们如果将鼠标悬停在这样的标签,它会告诉你的意思初始化对象。 – Will

+0

@WilliamVanRensselaer我认为这些描述是从wikipedia中提取的,可能值得一些解释(或者wiki文章应该扩展...) –

+0

@WilliamVanRensselaer:我已经编辑了这个问题以回应您的评论。 –

回答

2

懒惰评估是指如何评估表达式。例如:

f(x) && g(x) 

g(x)将不会被调用,除非f(x)为真。

延迟加载是指需要

+0

是不是'f(x)&& g(x)'也叫短路评估?还是短路评估是懒惰评估的一个子集? –

+1

@AndrewGrimm短路评估是一个懒惰评估的特例 –

+0

没有意义是迂腐的,初始化一个对象是调用表达式的问题,这意味着懒加载是懒评估的一个子情况? –