匿名函数中的下划线是什么意思?

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) => ()