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

时间:2012-09-01 17:31:31

标签: scala arguments

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

示例:

def foo(args: String*) = args.foreach(println)

如何为args设置默认参数?

1 个答案:

答案 0 :(得分:12)

没有。如果您尝试,编译器会告诉您:

  

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

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

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

这是你提供参数的时候:

scala> (new A).foo("A", "B")
A
B

这是“默认”:

scala> (new A).foo()
A
B
C