2012-09-01 38 views
7

Değişken uzunluklu bağımsız değişken listesi için varsayılan bir argüman ayarlanabiliyor mu?Varsayılan argüman ile değişken uzunluk argüman listesi?

Örnek:

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

Nasıl args için varsayılan bir argüman ayarlanır?

error: a parameter section with a `*'-parameter is not allowed to have default arguments

Ama yöntem olarak aşırı yüklemeye aynı sonucu elde edebilirsiniz:

cevap

12

sayılı Eğer çalışırsanız, derleyici söyleyecektir

: Burada

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

Eğer argümanlar sağladığını zaman var

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

Ve işte "varsayılan":

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

Harika çözüm, teşekkürler! –

İlgili konular