• 如果参数传递了值,那么会覆盖默认值,如果参数有默认值,在调用的时候,可以省略这个参数.

      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, 男