Ho le funzioni scala chiamate "run1" e "run2" che accettano 3 parametri. Quando li applico voglio fornire una funzione anonima con parametri impliciti. Non funziona in entrambi i casi nei seguenti codici di esempio. Voglio sapere seCome si crea la funzione scala anonima con più parametri impliciti
- E 'anche possibile?
- Se è possibile, qual è la sintassi?
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()
}
}
possibile duplicato del [letterale funzione con argomenti multipli impliciti] (http://stackoverflow.com/questions/14072061/function-literal-with-multiple-implicit- argomenti) – Noah
Non funziona nel mio caso in "run2", sto usando scala 2.10.0. – Michael
Il tuo tipo non è al curry, lo stai inserendo nella funzione 'run2' stessa. 'fType = Object => String => Long => Object' funzionerebbe. – Noah