可変長引数リストにデフォルトの引数を設定することは可能ですか?
例:
def foo(args: String*) = args.foreach(println)
のデフォルト引数を設定するにはどうすればよいargs
ですか?
いいえ。試してみると、コンパイラは次のように通知します。
エラー:「*」パラメータを持つパラメータセクションにデフォルトの引数を設定することはできません
ただし、メソッドのオーバーロードでも同じ結果を得ることができます。
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