Tôi có các hàm scala được gọi là "run1" và "run2" chấp nhận 3 tham số. Khi tôi áp dụng chúng tôi muốn cung cấp một hàm ẩn danh với các tham số ngầm định. Nó không hoạt động trong cả hai trường hợp trong các mã ví dụ bên dưới. Tôi muốn biết nếuLàm thế nào để bạn tạo chức năng ẩn danh scala với nhiều tham số ngầm định
- Điều đó có thể thực hiện được không?
- Nếu có thể, cú pháp là gì?
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()
}
}
có thể trùng lặp của [Hàm chữ với nhiều đối số ẩn] (http://stackoverflow.com/questions/14072061/function-literal-with-multiple-implicit- đối số) – Noah
Nó không hoạt động trong trường hợp của tôi tại "run2", tôi đang sử dụng scala 2.10.0. – Michael
Loại của bạn không bị quấy rầy, bạn đang tự xay nó trong chính hàm 'run2'. 'fType = Object => String => Long => Object' sẽ hoạt động. – Noah