将类型的方法转换为类型的函数

马丁

是否可以将类型T的方法转换为类型T的函数?例如,如果我有

case class T {
  def foo(u : U) : Unit = ???
}

使以某种方式将foo作为参数somef传递给

function bar(somef : (T, U) => Unit)

到目前为止,我已经将其从如下类型中拉出:

def foo_(t : T, u: U) = t.foo(u)

但这并不太干,甚至可以说是相当湿。

阿列克谢·罗曼诺夫(Alexey Romanov)

是的:bar(_.foo(_))根据您的情况。如果Scala没有足够的信息来推断参数的类型(例如,如果您有bar[T1, T2](somef: (T1, T2) => Unit)),则可以改用类似的方法(_: T).foo(_: U)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章