scala - telefono - ¿Cuál es el significado de dos puntos, guión bajo y estrella en el Mapa del sitio del ascensor(entradas:_*)?
lift transporte (1)
OK, después de que mi colega me mencionó, que encontró este encantamiento secreto en el libro Programación en Scala , hice una búsqueda en mi copia y encontré que se describe en la Sección 8.8 Parámetros repetidos . (Aunque debe buscar con espacio entre los dos puntos y el guión bajo: - /) Hay una oración para explicarlo como:
... añada el argumento de la matriz con dos puntos y un símbolo
_*, como este:scala> echo(arr: _*)Esta notación le dice al compilador que pase cada elemento de
arrcomo su propio argumento paraecho, en lugar de hacerlo todo como un único argumento.
Encuentro la descripción ofrecida aquí más útil.
Entonces x: _* es como una declaración de tipo que le dice al compilador que trate a x como un parámetro repetido (aka lista de argumentos de longitud variable - vararg ).
Estoy aprendiendo Scala y lift al mismo tiempo y me quedé atrapado al comprender la sintaxis utilizada para incializar el SiteMap en 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 SiteMap? Veo que las entradas de valor es una lista de Menú. ¿Qué es el colon, guión bajo, estrella ? Al principio pensé que era un método en la Lista, pero no puedo encontrar esa definición ...