3 parametreyi kabul eden "run1" ve "run2" adında ölçekleme işlevlerine sahibim. Onları uygularken örtük parametrelerle anonim bir işlev sağlamak istiyorum. Her iki durumda da aşağıdaki örnek kodlarda çalışmaz.Birden çok örtük parametresi olan scala anonim işlevini nasıl oluşturursunuz?
- Bu mümkün mü?
- Mümkünse sözdizimi nedir?
object Main extends App {
type fType = (Object, String, Long) => Object
def run1(f: fType) {
f(new Object, "Second Param", 3)
}
run1 { implicit (p1, p2, p3) => // fails
println(p1)
println(p2)
println(p3)
new Object()
}
def run2(f: fType) {
val fC = f.curried
fC(new Object)("Second Param")(3)
}
run2 { implicit p1 => implicit p2 => implicit p3 => // fails
println(p1)
println(p2)
println(p3)
new Object()
}
}
([Birden örtük argümanlarla literal Fonksiyon] olası yinelenen http://stackoverflow.com/questions/14072061/function-literal-with-multiple-implicit-: Çalışan bir sürüm için aşağıdaki kodu bakın argümanlar) – Noah
Benim durumumda "run2" de çalışmıyor, scala 2.10.0 kullanıyorum. – Michael
Sizin türünüz küfürlü değil, 'run2' işlevinin kendisinde onu karıştırıyorsunuz. 'fType = Object => String => Long => Object' işe yarayacaktı. – Noah