Scala: Nog een gebruik van underscore?

Ik ben op zoek naar de scala acteursbibliotheek en daar vond ik de volgende code:

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

    protected var activeActors = 0 
    ...

The question is what is the meaning of _: IScheduler => is here?
I'm new to Scala and it confuses me that there are so many different meanings with the underscore.

Alvast bedankt voor je hulp!

3
Bedankt voor de handige links! Deze _ vind ik echt gek: /
toegevoegd de auteur K J, de bron
Vond deze link slideshare.net/normation/scala-dreaded die verwijst naar SO
toegevoegd de auteur octopusgrabbus, de bron
mogelijk duplicaat van Wat betekent "outer =>" eigenlijk? of Explicit self-references with type/difference with '' this '' . Het enige verschil is dat het onderstrepingsteken hier wordt gebruikt voor het benoemen van de zelfreferentie, wat betekent dat je de naam vergeet.
toegevoegd de auteur kiritsuku, de bron

1 antwoord

Dit gebruik van het onderstrepingsteken is vergelijkbaar met die:

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

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

val (m, _, o) = (1,2,3)

Het is een syntactische placeholder voor een identifier (variabele) die achteraf onmiddellijk wordt weggegooid.

In your example, the naming of the self-type is therefore being avoided. (But since the self-type reference is always accessible as this, it would be equivalent to writing this: IScheduler => in that special case.)

5
toegevoegd
Bedankt voor het antwoord, Debilski. Ik wist niets van de verklaring van het type zelf. : /
toegevoegd de auteur K J, de bron