Was ist die Bedeutung des Dickdarms ist, unterstreichen und Stern in Lift SiteMap (Einträge: _ *)?

StackOverflow https://stackoverflow.com/questions/1124099

  •  13-09-2019
  •  | 
  •  

Frage

Ich lerne Scala und Aufzug zur gleichen Zeit, und ich habe auf das Verständnis der Syntax stecken verwendet, um die SiteMap im Boot.scala:

 val entries = Menu(Loc("Home", "/", "Home")) :: 
       Menu(Loc("Foo", "/badger", "Foo")) ::
       Menu(Loc("Directory Foo", "/something/foo", "Directory Foo")) :: Nil 
 LiftRules.setSiteMap(SiteMap(entries:_*))

Was genau ist die Bedeutung des SiteMap Parameter? Ich sehe, dass der Wert Einträge eine Liste von Menü ist. Was ist das Kolon, unterstreicht, star ? Zuerst dachte ich, es ist ein Verfahren auf der Liste ist, aber ich bin nicht in der Lage eine solche Definition zu finden ...

War es hilfreich?

Lösung

OK, nachdem mein Kollege mir gegenüber erwähnt, dass er dieses Geheimnis Beschwörung in Scala in der Programmierung aufgetreten Buch, habe ich eine Suche in meiner Kopie und fand es beschrieben in Abschnitt 8.8 Wiederholte Parametern . (Obwohl Sie müssen mit Leerzeichen zwischen dem Doppelpunkt und Strich suchen: - /) Es gibt einen einen Satz zu erklären, wie:

  

... hängen Sie die Array-Argument mit einem Doppelpunkt und eine _* Symbol, wie folgt aus:   scala> echo(arr: _*)

     

Diese Schreibweise teilt den Compiler jedes Element arr als ihr eigenes Argument zu übergeben echo, anstatt all das als ein einziges Argument.

Ich finde die Beschreibung hier angebotenen hilfreicher.

So x: _* ist wie eine Typdeklaration, die die Compiler x als wiederholten Parameter (auch bekannt als variabler Länge Argumentliste zu behandeln sagt - Vararg ).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top