匿名函数中的下划线是什么意思?
What do underscores mean in anonymous functions?
我有我试图理解的方法
def method1[A](
messageCallback: String => A,
failureCallback: Throwable => Unit = (_: Throwable) => Unit
) = {}
(_: Throwable) => Unit)
是什么意思?
我知道这是默认的函数文字,但我不明白下划线。
这是函数的默认实现。它非常简单,以至于它的签名看起来几乎与实现本身相同;它的签名是 Throwable => Unit
,它是用普通体 (_: Throwable) => Unit
实现的。意思是"take some Throwable at input and just don't return anything"。
这与将其实现为 (a: Throwable) => Unit
相同,但编译器会抱怨 a
未被使用。
同样的事情的另一种选择是 (a: Throwable) => ()
。
我有我试图理解的方法
def method1[A](
messageCallback: String => A,
failureCallback: Throwable => Unit = (_: Throwable) => Unit
) = {}
(_: Throwable) => Unit)
是什么意思?
我知道这是默认的函数文字,但我不明白下划线。
这是函数的默认实现。它非常简单,以至于它的签名看起来几乎与实现本身相同;它的签名是 Throwable => Unit
,它是用普通体 (_: Throwable) => Unit
实现的。意思是"take some Throwable at input and just don't return anything"。
这与将其实现为 (a: Throwable) => Unit
相同,但编译器会抱怨 a
未被使用。
同样的事情的另一种选择是 (a: Throwable) => ()
。