函数的参数

84 阅读2分钟

1:函数参数的默认值

object basic30 {

  //参数默认值:如果在调用的时候,没有传入

  //格式:参数名:类型= 默认值

  def greet(name:String="小张",age:Int=17,gender:String="女"):Unit={
    println(s"你好,我是${name},我今年${age}岁,我的性别是:${gender}")
  }

  def main(args: Array[String]): Unit = {
    greet("小花",18,"女")
    greet("小花",18)
    greet("小花")
    greet()

    //设置年龄为20,其他两个参数使用默认值
    greet(age=20)
    greet(gender="男",age=20)
  }

}
运行结果:

你好,我是小花,我今年18岁,我的性别是:女

你好,我是小花,我今年18岁,我的性别是:女

你好,我是小花,我今年17岁,我的性别是:女

你好,我是小张,我今年17岁,我的性别是:女

你好,我是小张,我今年20岁,我的性别是:女

你好,我是小张,我今年20岁,我的性别是:男

object Main {
    
    def f(n:Int):Int = {
       if(n == 1){
           1
       }else{
           f(n-1) + n
       }
    }
	def main(args: Array[String]): Unit = {
		val rst = f(100)
		println(rst)
	}
}

改变一个符号,让结果为阶乘

(结合以上代码)

object Main {
    
    def f(n:Int):Int = {
       if(n == 1){
           1
       }else{
           f(n-1) * n
       }
    }
	def main(args: Array[String]): Unit = {
		val rst = f(4)
		println(rst)
	}
}



可变参数

  1. 可变参数:用来接收同一类型的多个参数
  2. 格式:参数类型*

例题一

如何定义一个函数,它能接收数量不定的参数,并计算它们的累加?例如:getSum(1,2,3)得到6,getSum(1,2,3,4)得到10

scala
 体验AI代码助手
 代码解读
复制代码
/**可变参数:用来接收同一类型的多个参数
 * 格式:参数类型*
 * 要点:
 * 1. 类型要一致
 * 2. 可变参数必须在列表的最后
 */
def getSum(args:Int*):Int={
  var sum=0
  for(i <- args){
    sum +=i
  }
  sum
}


def main(args: Array[String]): Unit = {
  val rst1=getSum(1,2,3)
  val rst2=getSum(1,2,3,4)
  val rst3=getSum(1,2)
  println(rst1,rst2,rst3)
}

上述代码输出的结果为(6,10,3)