代码:
传值调用:
- 先计算balance的值
- 把这个值作为参数传递给printmoney
传名调用:传递的是函数
将balance方法的名称传递到方法内部
传值调用:
object ZFBToPay {
var money = 1000
//吃一顿消费50
def eat():Unit={
money=money-50;
}
//余额
def balance():Int={
eat()
money
}
//打印余额
def printMoney(x: Int):Unit={
for (a <- 1 to 5 ){
println(f"你的余额现在为:$x")
}
}
def main(args: Array[String]): Unit = {
printMoney(balance())
}
}
结果:
你的余额现在为:950
你的余额现在为:950
你的余额现在为:950
你的余额现在为:950
你的余额现在为:950
传名调用
object ZFBToPay {
var money = 1000
//吃一顿消费50
def eat():Unit={
money=money-50;
}
//余额
def balance():Int={
eat()
money
}
//打印余额
def printMoney(x: => Int):Unit={
for (a <- 1 to 5 ){
println(f"你的余额现在为:$x")
}
}
def main(args: Array[String]): Unit = {
printMoney(balance())
}
}
结果:
你的余额现在为:950
你的余额现在为:900
你的余额现在为:850
你的余额现在为:800
你的余额现在为:750