Scala:下划线的另一种用法

Terrylee 阅读:19 2024-11-01 17:39:52 评论:0

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

private[scheduler] trait TerminationMonitor {  
    _: IScheduler => 
 
    protected var activeActors = 0  
    ... 

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

提前感谢您的帮助!

请您参考如下方法:

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

someElem match { 
  case _: String => doSomething() 
} 
 
val k = (_: Int) => "This does not use the Int argument." 
 
val (m, _, o) = (1,2,3) 

它是标识符(变量)的句法占位符,随后立即被丢弃。

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


标签:Scala
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号