参数的默认值

43 阅读1分钟

(一)函数参数的默认值

1. 定义有默认值的函数

格式

def 函数名(参数1:类型1=默认值1,参数2:类型2=默认值2)

object base38 {
  // gender:
  def greet(name:String="哈哈",age:Int=18,gender:String="女"):Unit={
    println(s"我是${name},我今年${age},${gender}")
  }

  def main(args:Array[String]):Unit = {
    greet("小花",18)  //默认值
    greet("小明",20,"男")
    greet()

    // 设置age为20,其他采用默认值
    // 传参数时,可以指定参数的名字
    greet( age=20 )
    greet( gender="男",age=20)
  }
}
object base39 {

  // 如果函数不需要参数,可以在定义函数的时候,省去()
  def greet:Unit = {
    println(s"hahahahaha~~~~")
  }

  def main(args: Array[String]):Unit = {
    // 如果在定义函数的时候没有写(),那么在调用函数的时候,也不要加()
    greet
  }
}

(二)创建不带()的方法

如果函数没有参数,可以省略定义函数时的( )

格式:def 方法名:[返回类型]={}。

object base40 {

  //传入不同的数量的参数
  //第一个参数是学生的名字,车第二个参数开始,是这个学生某些个学科的得分
  //变参:允许传入不同个数,但是类型相同的参数
  // Int*
  // array  数组

  def greet(name:String,score:Int* ):Unit = {
    // score是一个列表
    var total:Double = 0
    for(i <- score){
      total += i
    }

    val avg = total / score.length
    println(s"${name},平均分是:${avg}")
  }

  def main(args: Array[String]):Unit = {
    //
    greet("小花",90,100,98,100,60)
    greet("小明",80,88)
    greet("小张",90)
  }
}