是否可以将类型T上的方法转换为类型T的函数?例如,如果我有
case class T {
def foo(u : U) : Unit = ???
}
可以将foo作为参数以某种方式传递给
function bar(somef : (T, U) => Unit)
到目前为止,我已经将它从类型中拉出来了:
def foo_(t : T, u: U) = t.foo(u)
但这并不是太干,或者说甚至可能都很干。
答案 0 :(得分:2)
是的:bar(_.foo(_))
在您的情况下。如果Scala没有足够的信息来推断参数类型(例如,如果你有bar[T1, T2](somef: (T1, T2) => Unit)
),那么你可以改用(_: T).foo(_: U)
之类的东西。