传调用使用=>符号表示,两者的区别在于,传值调用在使用时已经计算好,而传名调用只有在使用的时候调用。
object Test {
var money = 10
def drink: Unit = {
money -= 1
}
def count: Int = {
drink
money
}
def printByName(x: => Int): Unit = {
for(i <- 0 until 5)
println(x )
}
def printByValue(x: Int): Unit = {
for(i <- 0 until 5)
println( x )
}
def main(args: Array[String]) = {
printByName(count)
printByValue(count)
}
}
以上两者的输出为:
9
8
7
6
5
4
4
4
4
4
本文通过具体的代码示例对比了传值调用与传名调用的区别,并展示了这两种调用方式在输出上的不同表现。
497

被折叠的 条评论
为什么被折叠?



