Ben bir işlevDeğişken argümanlarla, ancak adlandırılmış argümanlarla bir işlevi çağırmak için Scala sözdizimi nedir?
def f(a:Int = 0, b:String = "", c:Float=0.0, foos: Foo*) { ... }
Bildirimi bazı parametreler için varsayılan argümanlar kullanılması olduğunu düşünelim. Tipik olarak, varsayılan değerler faydalanmak için, bunu böyle adlandırılmış parametreleri ile bir fonksiyonu çağırmak: Sadece bir foo
ile yöntemini hatırlatıyorum çünkü
val foo = Foo("Foo!")
f(foos = foo)
Bu sözdizimi çalışır. Ben iki veya daha fazla
val foo1 = Foo("Foo!")
val foo2 = Foo("Bar!")
f(foos = ...)
varsa Ancak, burada beslenmek gerektiği çok açık değil. Seq(foo1,foo2)
ve Seq(foo1,foo2):_*
kontrol yazmayın.
Dahası, nasıl nofoo
s ile arayabilirim? çalışmıyor boş parantez (f()
) ile işlevini çağırarak bu durumda İçin
// All out of foos!
f(foos = ...)
. Teşekkürler!
Hangi scala versiyonunu kullanıyorsunuz? 2.9.2 REPL'de f'yi tanımlamaya teşebbüs etmek bana ": 9: hatası:' * 'parametresine sahip bir parametre bölümü - parametrenin varsayılan argümanlara sahip olmasına izin verilmiyor " –
Bunu 2.9.2 olarak görüyorum iyi. Ancak, derlediğim asıl kod, yasal olduğu anlaşılan 2.9.1 sürümünü çalıştırıyor. – fatuhoku