Se "salpica" 1 la secuencia.
Mira la firma del constructor
new Elem(prefix: String, label: String, attributes: MetaData, scope: NamespaceBinding,
child: Node*)
que se llama como
new Elem(prefix, label, attributes, scope,
child1, child2, ... childN)
pero aquí solo hay una secuencia, no child1
, child2
etc., por lo que esto permite que la secuencia de resultados se use como entrada para el constructor.
Feliz codificación
1 Esto no tiene un nombre cursi en el SLS, pero aquí están los detalles. Lo importante es que cambia la forma en que Scala vincula los argumentos al método con parámetros repetidos (como se indica Node*
anteriormente).
La _*
anotación de tipo se trata en "4.6.2 Parámetros repetidos" del SLS.
El último parámetro de valor de una sección de parámetros puede tener el sufijo "*", por ejemplo (..., x: T *). El tipo de dicho parámetro repetido dentro del método es entonces el tipo de secuencia scala.Seq [T]. Los métodos con parámetros repetidos T * toman un número variable de argumentos de tipo T. Es decir, si un método m con tipo (p1: T1,..., Pn: Tn, ps: S *) U se aplica a los argumentos (e1,..., Ek) donde k> = n, entonces m es tomado en esa aplicación para tener el tipo (p1: T1,..., pn: Tn, ps: S,..., ps0S) U, con k en n ocurrencias de tipo S donde cualquier nombre de parámetro más allá de ps es nuevo.La única excepción a esta regla es si el último argumento está marcado como un argumento de secuencia mediante una anotación de tipo _ *. Si se aplica m arriba a los argumentos (e1,..., En, e0: _ *), entonces se considera que el tipo de m en esa aplicación es (p1: T1,..., Pn: Tn, ps: scala .Seq [S])