一. 汉诺塔 递归
var i = 0;
def hanoi(n:Int,A:String,C:String,B:String):Unit = {
if(n == 1){
println(s"$i,move 1 from $A → $C")
i += 1
}else{
hanoi(n-1,A,B,C)
println(s"$i,move $n from $A → $C")
i += 1
hanoi(n-1,B,C,A)
}
}
def main(args: Array[String]): Unit = {
hanoi(4,"A","C","B")
}
二. 字面量语法
2.1. 写法1
def main(args: Array[String]): Unit = {
x + y
}
val sum2 = (x:Int,y:Int) => {x+y}
def main(args: Array[String]): Unit = {
println(sum1(10,20))
println(sum2(10,20))
}
2.2. 写法2
val sum1 = (x:Int,y:Int) => {x+y}
val sum2 = (x:Int,y:Int) => x+y
val sum3:(Int,Int) => Int =_+_
def main(args: Array[String]): Unit = {
println(sum1(10,20))
println(sum2(10,20))
println(sum3(10,20))
}
三.部分应用函数
val sum2 = (a:Int,b:Int,c:Int) => a+b+c
def main(args: Array[String]): Unit = {
val r = sum2(10,20,_)
println(r(50))
val r1 = sum2(_,20,_)
println(r1(10,30))
}