call by value
call by name
如何区分?
例子:
def bar(x:Int,y: => Int) =
def loop(): Int=loop
bar(,loop)//依然能返回结果
//x参数是call by value,先求得loop值之后才能进行之后的计算。
bar(loop,)//进入死循环
//y参数是call by name,不需要先进行表达式的值计算。
2023-01-04站长百科下载本文scala,基础,求值,策略
call by value
call by name
如何区分?
例子:
def bar(x:Int,y: => Int) =
def loop(): Int=loop
bar(,loop)//依然能返回结果
//x参数是call by value,先求得loop值之后才能进行之后的计算。
bar(loop,)//进入死循环
//y参数是call by name,不需要先进行表达式的值计算。
《Scala基础篇-05求值策略.doc》
下载本文的Word格式文档,以方便收藏与打印。