scala函数的call-by-name和call-by-value 区别

scala函数的call-by-namecall-by-value 区别

 

def test (x:Int, y:Int )=x*x

 

  test(2,3)

  test(3+4,8)

  test(7,2*4)

   

 

  test(2,3)  2*2  4  CBV CBN 执行步骤一样

  test(3+4,8) CBV 执行步骤少

  CBV test(7,8) 7*7  49

  CBN (3+4)* (3+4)  7*(3+4) 7*7 49

 

 

  test(7,2*4) CBN执行步骤少

CBV  test(7,8)    7*7 49

CBN 7*7   49

 

 

call-by-value使用=>符号

 

 

DT大数据微信公众账号:DT_Spark

DT大数据梦工厂scala的所有视频、PPT和代码在百度云盘的链接地址:http://pan.baidu.com/share/home?uk=4013289088&view=share#category/type=0&qq-pf-to=pcqq.group

 

 

 

 

 

 

你可能感兴趣的:(scala函数的call-by-name和call-by-value 区别)