我正在研究scala actors库,其中我发现了以下代码:
private[scheduler] trait TerminationMonitor {
_: IScheduler =>
protected var activeActors = 0
...
问题是_:IScheduler =>在这里的含义是什么?我刚开始学习Scala,对于下划线有很多不同的含义感到困惑。谢谢您的帮助!
我正在研究scala actors库,其中我发现了以下代码:
private[scheduler] trait TerminationMonitor {
_: IScheduler =>
protected var activeActors = 0
...
下划线的使用方式与以下情况类似:
someElem match {
case _: String => doSomething()
}
val k = (_: Int) => "This does not use the Int argument."
val (m, _, o) = (1,2,3)
它是一个语法占位符,用于标识(变量),随后立即被丢弃。
在您的示例中,因此避免了自身类型的命名。(但由于自身类型引用始终可通过this
访问,因此在这种特殊情况下,写成this:IScheduler =>
是等效的。)