我正在查看scala actors库,在那里我找到了以下代码:
private[scheduler] trait TerminationMonitor {
_: IScheduler =>
protected var activeActors = 0
...
问题是_的含义是什么:IScheduler =>在这里? 我是Scala的新手,让我感到困惑的是,下划线有很多不同的含义。
提前感谢您的帮助!
答案 0 :(得分:5)
下划线的这种用法类似于:
someElem match {
case _: String => doSomething()
}
val k = (_: Int) => "This does not use the Int argument."
val (m, _, o) = (1,2,3)
它是标识符(变量)的语法占位符,之后会立即丢弃。
在您的示例中,因此避免了自我类型的命名。 (但由于自我类型引用始终可以作为this
访问,因此它等同于在该特殊情况下编写this: IScheduler =>
。)