可变参数
功能相当于 java 的 不定长参数,定义可变参数的函数,在调用函数时,传入的参数是可变的,即:可传入一个参数,也可传入多个参数
语法
def 函数名(变量名:类型 *): 返回类型 = {
}
解释: 在形参类型后面加 *,表示可变参数
例子
object StdFun3 {
def main(args: Array[String]): Unit = {
def test(a:Int*): Unit = {
println(a)
}
test(1)
test(1,2)
}
}
执行结果:
WrappedArray(1)
WrappedArray(1, 2)
有多个参数时,可变参数放在最后
def main(args: Array[String]): Unit = {
def addStudent(name:String, likes:String *): Unit ={
println("姓名:"+name)
println("爱好:"+likes)
}
addStudent("韩梅梅")
addStudent("lucy","抖音")
addStudent("李雷","抖音","王者荣耀","原神")
}
执行结果:
姓名:韩梅梅
爱好:WrappedArray()
姓名:lucy
爱好:WrappedArray(抖音)
姓名:李雷
爱好:WrappedArray(抖音, 王者荣耀, 原神)
不在最后会报错
下面会报错:
def main(args: Array[String]): Unit = {
def test(b:Int*,a:String): Unit = {
println(a)
println(b)
}
}
参数的默认值
- 定义函数时,可以给 某个参数 指定一个默认值
- 一般 将常见的值设置为 默认值
- 有默认值的参数,一般放在 最后面
- 目的 简化函数的调用,调用函数时,如果没有传参,在函数内部使用 默认值
def main(args: Array[String]): Unit = {
def reg(name:String,age:Int=18,sex:String="男"): Unit ={
println(s"登记计算机学生==>姓名:${name},年龄:${age},性别:${sex}")
}
reg("李雷")
reg("韩梅梅",17,"女")
}
带名参数
调用函数时,可以 指定 参数名,此时可以 不按 顺序传参
def main(args: Array[String]): Unit = {
def reg(name:String,age:Int=18,sex:String="男"): Unit ={
println(s"登记学生==>姓名:${name},年龄:${age},性别:${sex}")
}
reg(age=20,sex="女",name="lucy")
}