递归函数案例

50 阅读1分钟

汉诺塔递归

object hai25 {
  var i = 1;
  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 1 from $A$C")
      i +=1
      hanoi(n-1,A,B,C)
    }
  }


  def main(args: Array[String]): Unit = {
    hanoi(4, "A", "C", "B")
  }
}

四个盘子从A移到C,借助B

字面量语法

1.var 变量=(参数列表)=>{方法体}

  1. 函数字面量语法,另一种定义函数的方式
  2. 函数字面量语法:相对于def
  • 省略了返回值类型
  • 省略函数名 现在就是变量名
  • 多一个=>

scala部分应用函数 如果一个函数包含多个参数,对该函数传递部分参数使得这个函数返回一个函数 那么这种函数叫做部分应用函数