如果参数传递了值,那么会覆盖默认值,如果参数有默认值,在调用的时候,可以省略这个参数.
def main(args: Array[String]): Unit = {
def test3(name: String, age: Int = 30): Unit = {
println(s”$name, $age”)
}
test3(“params1”, 20)
test3(“params1”)
输出
params1, 20
params1, 30
- 有默认值的参数放在参数列表后面(scala函数中参数传递是,从左到右位置传递的,就是你写的第一个位置的参数一定会给参数1,第二个位置的参数一定会给参数2,所以你有默认值的参必须要放最后,不然的话,你不传递的话语法就报错过不去.)
使用命名参数方式解决上面报错问题: 可以在入参那里指定是哪个参数,比如说name = “params1” ,指定是 name属性赋值为 params1 ,sex就用默认参数.
def main(args: Array[String]): Unit = {
def test4(sex: String = “男”, name: String): Unit = {
println(s”$name, $sex”)
}
// test4(“params1”) // 不指定参数名字报错
// 指定参数名字
test4(name = “params1”)
}
输出
params1, 男