Scala程序设计-Evaluation Strategy

本文探讨了Scala中的两种求值策略——Call By Value和Call By Name。Call By Value策略确保函数参数只求值一次,而Call By Name则在函数体内每次使用时都会重新求值。Scala默认采用Call By Value,但通过将函数形参类型声明为=>开头,可以实现Call By Name的效果。文章通过实例展示了这两种策略的区别。
摘要由CSDN通过智能技术生成

求值策略

  1. Scala里有两种求值策略(Evaluation Strategy )

    • Call By Value - 对函数实参求值,且仅求值一次
    • Call By Name - 函数实参每次在函数体内被用到时都会求值
  2. Scala通常使用Call By Value

    如果函数形参类型以 => 开头,那么使用Call By Name

 def foo(x: Int) =x  //Call By Value
 def foo(x: => Int) =x  //Call By Name

求值策略的栗子(注意其区别):

 def test1(x:  Int,y: Int) : Int = x*x
 def test2(x: => 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值