¿Cuál es el significado de colon, subrayan y estrellas en SiteMap de elevación (entradas: _ *)?

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

  •  13-09-2019
  •  | 
  •  

Pregunta

Estoy aprendiendo Scala y ascensor al mismo tiempo y me quedé atrapado en la comprensión de la sintaxis utilizada para la inintialize Mapa del Sitio en el 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:_*))

¿Cuál es exactamente el significado del parámetro Mapa del Sitio? Veo que el valor entradas es una lista de menú. ¿Cuál es el dos puntos, guión bajo, estrella ? Al principio pensé que se trata de un método en la lista, pero no puedo encontrar tal definición ...

¿Fue útil?

Solución

OK, después de que mi colega me comentó, que se encontró con este encantamiento secreta en la programación en Scala libro, hice una búsqueda en mi copia y encontramos que se describe en Sección 8.8 parámetros repetidos . (A pesar de que es necesario buscar con el espacio entre los dos puntos y guión: - /) Hay una sola frase para explicar como:

  

... añadir el argumento de matriz con dos puntos y un _* símbolo, como esto:   scala> echo(arr: _*)

     

Esta notación indica al compilador para pasar cada elemento de arr como su propio argumento para echo, en lugar de toda ella como un solo argumento.

Me parece que el Descripción ofrecido aquí más útiles.

Así x: _* es como una declaración de tipo que le dice al compilador para tratar x como parámetro repetido (lista de argumentos alias de longitud variable - vararg ).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top