scala的传值调用和传名调用
共用代码:
//传值调用和传名调用
var money = 100
//定义一个花钱的方法
//花钱
def buy(): Unit ={
money -= 5
}
//查询
def see()={
buy()
money
}
传值调用
当传入参数为一个具体的数值时,参数的值一旦确定,就不会改变。
def value(x:Int): Unit ={
for(i <- 1 to 5){
println("money="+ x )
}
}
value(see())运行结果:
money=95
money=95
money=95
money=95
money=95
传名调用(函数)
将函数作为参数,假设接收该函数返回值的变量为x,每当方法体内部调用该变量的时候,该变量所对应的函数也会相应的执行一次。
def key(x: => Int): Unit ={
for(i <- 1 to 5){
println("money="+ x )
}
}
key(see())的执行结果为:
money=90
money=85
money=80
money=75
money=70
本文探讨了Scala编程语言中的两种调用方式:传值调用和传名调用。通过示例代码展示了它们的区别。传值调用时,参数的值在调用时确定并保持不变;而传名调用则是将函数本身作为参数传递,每次调用参数时都会执行对应的函数。这种特性使得Scala的传名调用在处理变化状态或递归时展现出独特的优势。
5577

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



