函数的参数

23 阅读1分钟

案列1

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

def main(args: Array[String]): Unit = { greet("小花", 18) // 默认值 greet("小明", 20, "男") greet()

//  设置age为20,其他采用默认值
//  传参数的时候,指定参数的名字
greet(age=20)
greet( gender="男", age=20)
是否省略()

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

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


不同数量参数的用法

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

def main(args: Array[String]): Unit = { // greet("小花", 90, 100, 98, 100,60) greet("小明", 80, 88) greet("小张", 90) }

定位参数

// 1 + 2 + 3 + 4 + ... + n def sum(n:Int): Int = { if(n == 1){ 1 } else { sum(n-1) + n } }

def main(args: Array[String]): Unit = { val s = sum(100) println(s)