Scala:下划线的另一种用法?

K J*_*K J 3 scala

我正在查看scala actors库,在那里我找到了以下代码:

private[scheduler] trait TerminationMonitor { 
    _: IScheduler =>

    protected var activeActors = 0 
    ...
Run Code Online (Sandbox Code Playgroud)

问题是_的含义是什么:IScheduler =>在这里?
我是Scala的新手,让我感到困惑的是,下划线有很多不同的含义.

感谢您的帮助!

Deb*_*ski 5

下划线的这种用法类似于:

someElem match {
  case _: String => doSomething()
}

val k = (_: Int) => "This does not use the Int argument."

val (m, _, o) = (1,2,3)
Run Code Online (Sandbox Code Playgroud)

它是标识符(变量)的语法占位符,之后立即丢弃.

在您的示例中,因此避免了自我类型的命名.(但由于自我类型引用始终可访问this,因此它等同于this: IScheduler =>在特殊情况下编写.)