函数参数

41 阅读1分钟

函数参数

(一)函数参数的默认值

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

(三)创建接受变参的方法

函数参数的默认值

定义有默认值的函数

object G01 {
  // 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 G02 {
  // 如果函数不需要参数,可以在定义函数的时候,省略()
  def greet:Unit = {
    println(s"hahaha")
  }

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

创建接受变参的方法

在Scala中创建接受变参的方法为:参数类型*,这种方式只能接受同一类型的参数。

object G03 {

  // 传入不同的类型的参数
  // 第一个参数是学生的名字,从第二个参数开始,是这个学生的某个学科的得分
  // 要求:允许传入不同个数,但是类型相同的参数
  // 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)
    
  }
}