我不理解按名称调用和按需调用之间的区别。据我了解,按需调用方法还原返回的答案。但它如何帮助我们,并且结果之间是否有任何根本差异?
例如,
begin integer n;
procedure foo(e, n);
integer e, n;
begin
for n := 1 step 1 until 10 do begin
prints(`;;; the value of e is ');
printnln(e)
end
end;
foo(2 * n, n)
end
所以在按名称调用中,据我了解,我们将得到:
;;; the value of e is 2
;;; the value of e is 4
;;; the value of e is 8
等等,这是因为我们向e
传递了2*n
,而且每次都要使用新的i
来评估e
。
在需要调用时会发生什么?