首页 > 其他 > 详细

Scala 中 call by name & call by value 的区别

时间:2019-08-23 00:26:56      阅读:111      评论:0      收藏:0      [点我收藏+]

call by value:会先计算参数的值,然后再传递给被调用的函数

call by name:参数会到实际使用的时候才计算

定义方法

def return1():Int = { 
    println("calling...")
    1
}

def callByValue(x: Int) = { 
  println("x1=" + x)
  println("x2=" + x)
} 

def callByName(x: =>Int) = {
  println("x1=" + x)
  println("x2=" + x)
}

调用方法,比较输出

scala> callByValue(return1())
calling...
x1=1
x2=1

scala> callByName(return1())
calling...
x1=1
calling...
x2=1

 

Scala 中 call by name & call by value 的区别

原文:https://www.cnblogs.com/Alcesttt/p/11397536.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!