call by value  对函数的实参求值,并只求值一次

          举例:def test1(x:Int,y:Int):Int=x+x

              Scala函数参数 求值策略

              

call by name:函数的实参每次在函数体内部被调用的时候,都会进行求值

                             

           Scala函数参数 求值策略

实践:

Scala函数参数 求值策略

byvalue策略,实际使用loop(),死循环

Scala函数参数 求值策略

byvalue策略,实际不适用loop(),也会卡死

说明:byvalue策略,参数无论是否使用,都会进行求值

Scala函数参数 求值策略

 

byname策略,实际不使用loop,不会卡死

Scala函数参数 求值策略

byname策略,实际使用loop,死循环

结论:byname 策略,只有在使用参数时,才会进行求值

相关文章: