循环定义如下:
def loop : Boolean = loop
当x定义为:def x = loop
然后控制台中会显示“x: Boolean”。
and
当x定义为:val x = loop
然后就进入无限循环
我知道 def 正在使用按名称调用,而 val 正在使用按值调用。尽管上面定义的循环这一点还不太清楚。
def
不评估作业的右侧。就像
def f(x : Int) = x + 2
不(在这种情况下逻辑上不能)评估f
任何东西,只是定义函数f
, 意味着, 两者都不是def loop : Boolean = loop
nor def x = loop
评价任何事物。您只是定义一个要在其他点执行的函数。
But val
确实需要评估作业的右侧。所以val x = loop
尝试执行右侧的表达式。尝试评估loop
但永远不会终止,因为loop
是一个无限循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)