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

时间:2012-06-24 10:28:14

标签: scala

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

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

    protected var activeActors = 0 
    ...

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

提前感谢您的帮助!

1 个答案:

答案 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 =>。)