Scala—函数参数

50 阅读1分钟

一、函数参数的默认值

1.定义有默认值的函数

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

编码示范:

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


def main(arg: Array[String]): Unit = {
  greet("小花", 18)  // 默认值
  greet("小明", 20, "男")
  greet()
}
2.给函数设置默认参数:
  • 设置age为20,其他采用默认值
  • 传参数的时候,制定参数的名字
greet(age=20)
greet(gender="男", age=20)

二、创建不带()的方法

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

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

// 如果函数不需要参数,可以在定义函数的时候,省略()
def greet():Unit = {
  println(s"hahhaa~~~")
}
def main(arg: Array[String]): Unit = {
  // 如果在定义函数的时候没有写(),那么在调用函数的时候也不要加()
  greet
}

三、创建接受变参的方法

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

  • 传入不同的数量的参数
  • 第一个参数是学生的名字,从第二个参数开始,是这个学生某些个学科的得分
  • 变参:允许传入不同个数,但是类型相同的参数
  • 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(arg: Array[String]): Unit = {
  //
  greet("小花", 90, 100, 98, 100, 60)
  greet("小明", 80, 88)
  greet("小张", 90)
}