函数参数

80 阅读1分钟

函数参数的默认值:

格式:

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

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

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

  def main(args: Array[String]): Unit = {
    greet("小蕾", 18) //默认值
    greet("小明", 19, "男")
    greet()
    //设置age为20,其他采用默认值
    //传参数的时候,指定参数的名字

    greet(age = 20)
    greet(gender = "男", age = 20)
  }
}

创建不带()的方法

如果函数没有参数,可以省略定义函数时的( ) 格式: def 方法名:[返回类型]={} 示例代码:

def sayHello: Unit = {    
println("hello")

}    
sayHello // 不用加()

创建接受变参的方法

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

传入不同的数量的参数

示例代码如下:

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

运行结果如下:

小花,平均分是:89.6
小明,平均分是:84.0
小张,平均分是:90.0