函数参数

46 阅读1分钟

R-C.gif

函数参数的默认值

定义有默认值的函数

格式

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

编码示范

定义一个函数,并使用不同的参数来测试使用

object base27 {
  def greet(name:String="小鱼",age:Int=15,genter:String="男"):Unit = {
    println(s"我是${name},我今年${age},${genter}")
  }

  def main(args: Array[String]): Unit = {
    greet()
    greet("小黄",14)
    greet("小橙",15,"女")

    // 设置age为20,其他采用默认值
    // 传参数时,制定参数的名字
    greet(age=20)
    greet(name="小橙",genter="女")
  }
}

输出结果

我是小鱼,我今年15,男
我是小黄,我今年14,男
我是小橙,我今年15,女
我是小鱼,我今年20,男
我是小橙,我今年15,女

创建不带()的方法

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

格式

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

编码示范

object base28 {

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

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

创建接受变参的方法

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

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

编码示范

object base29 {

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