Scala函数参数 求值策略

本文探讨了Scala中两种参数求值策略——call by value和call by name。call by value策略仅对参数求值一次,即使未使用也会求值,如在`test1`函数的例子中。而call by name策略则在函数体内每次调用参数时才求值,避免了不必要的计算。通过使用loop()的示例,展示了byname策略如何根据参数实际使用情况决定是否求值,从而影响程序执行。
摘要由CSDN通过智能技术生成

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

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

              

              

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

                             

           

实践:

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

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

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

 

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值