9.30Scala函数的参数默认值

罗汉塔

object TestFuncRecu {
  def han(n:Int,A:String,B:String,C:String):Unit = {
    if (n == 1){
      println(s"$A ---> $C")
    }else{
      //1.把前n-1个盘子(上面的n-1个):从A->B
      han(n - 1,A, B, C)
      //2.把第n个盘子,从A->C
      println(s"$A ---> $C")
      //3.把第1步中的前n-1个盘子(上面的n-1个):从B->C
      han(n - 1,B,A,C)
    }
  }

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

函数参数的默认值

Scala可以为函数参数指定默认值,这样在调用函数的过程中可以不需要传递参数,这时函数就会调用其默认值。如果传递了参数,则传递值会取代默认值。

object TestFuncDefault {
  //参数有默认值的函数 函数名(参数名1:类型=默认值1,参数名2:类型=默认值2)
  //有了默认值之后,如果没有传入参数,就使用默认值!
  def fn(a:Int = 1 ,b:Int = 2): Int ={
    println(s"a=$a,b=$b")
    a+b
  }
  def main(args: Array[String]): Unit = {
    println(fn())
    println(fn(100))//100传给了a
    println(fn(b=200))//200传给了b
    println(fn(100,200))

  }

}

Scala的函数默认值

传递参数的第一种方式:函数使用默认值时可以不传递参数。当函数传递值时会覆盖默认值,如果函数没有传递值,则会取默认值为参数。

传递参数的第二种方式:可以用参数名指定传递参数。当使用第二种方式传递参数时,因为已经指定了变量名,所以并不需要固定参数的前后顺序。只有在没有指定变量名时,参数的前后顺序才需要固定。

创建不带()的方法

如果定义方法的时候没有(),那么在调用该方法时也不需要加上()。

  //如果没有参数,可以省略定义和调用时的()
  def fn1: Unit ={
    println("Fn1")
  }
  def main(args: Array[String]): Unit = {
//    println(fn())
//    println(fn(100))//100传给了a
//    println(fn(b=200))//200传给了b
//    println(fn(100,200))
    fn1

  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值