带有默认参数的可变长度参数列表?

Joh*_*ood 7 arguments scala

是否可以为可变长度参数列表设置默认参数?

例:

def foo(args: String*) = args.foreach(println)
Run Code Online (Sandbox Code Playgroud)

如何设置默认参数args

dhg*_*dhg 12

不.如果您尝试,编译器会告诉您:

错误:带有`*' - 参数的参数部分不允许有默认参数

但是你可以通过方法重载获得相同的结果:

class A {
  def foo(args: String*): Unit = args.foreach(println)
  def foo(): Unit = foo("A", "B", "C")
}
Run Code Online (Sandbox Code Playgroud)

这是你提供参数的时候:

scala> (new A).foo("A", "B")
A
B
Run Code Online (Sandbox Code Playgroud)

这是"默认":

scala> (new A).foo()
A
B
C
Run Code Online (Sandbox Code Playgroud)