Itu "percikan" 1 urutannya.
Lihatlah tanda tangan konstruktor
new Elem(prefix: String, label: String, attributes: MetaData, scope: NamespaceBinding,
child: Node*)
yang disebut sebagai
new Elem(prefix, label, attributes, scope,
child1, child2, ... childN)
tetapi di sini hanya ada urutan, bukan child1
,, child2
dll. jadi ini memungkinkan urutan hasil yang akan digunakan sebagai input ke konstruktor.
Selamat coding.
1 Ini tidak memiliki nama imut dalam SLS, tetapi di sini adalah rinciannya. Yang penting untuk didapatkan adalah bahwa ia mengubah cara Scala mengikat argumen ke metode dengan parameter berulang (seperti dilambangkan dengan di Node*
atas).
The _*
penjelasan jenis tercakup dalam "4.6.2 Parameter berulang" dari SLS.
Parameter nilai terakhir dari bagian parameter dapat sufiks dengan "*", misalnya (..., x: T *). Jenis parameter berulang seperti itu di dalam metode kemudian jenis urutan scala.Seq [T]. Metode dengan parameter berulang T * mengambil sejumlah variabel argumen tipe T. Yaitu, jika metode m dengan tipe (p1: T1, ..., pn: Tn, ps: S *) U diterapkan pada argumen (e1,.,., Ek) di mana k> = n, maka m adalah diambil dalam aplikasi itu untuk memiliki tipe (p1: T1, ..., pn: Tn, ps: S, ..., ps0S) U, dengan kejadian k dari tipe S di mana setiap nama parameter di luar ps adalah segar.Satu-satunya pengecualian untuk aturan ini adalah jika argumen terakhir ditandai sebagai argumen urutan melalui anotasi tipe _ *. Jika m di atas diterapkan pada argumen (e1, ..., en, e0: _ *), maka jenis m dalam aplikasi itu dianggap (p1: T1, ..., pn: Tn, ps: scala .Seq [S])