函数参数

94 阅读1分钟

一、函数参数的默认值

1. 定义有默认值的函数

格式:

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

object base35 {
    // 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)

    }
}

指定某一参数时,要指定参数的名字

代码运行截图&&结果(↓) image.png

!!!!如果在定义函数的时候没有写(),那么 在调用函数的时候,也不要加()!!!! image.png

修正(↓) image.png

二、创建不带()的方法

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

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

三、创建接受变参的方法

1.我们需要一个统一的容器,把参数都装起来。

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

注意:

1.传入不同的数量的参数

2.变参:允许传入不同个数,但是类型相同的参数

3.Int*[ ]

4.array 数组

object base37 {

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

}