มัน "splats" 1ลำดับ
ดูลายเซ็นตัวสร้าง
new Elem(prefix: String, label: String, attributes: MetaData, scope: NamespaceBinding,
child: Node*)
ซึ่งเรียกว่าเป็น
new Elem(prefix, label, attributes, scope,
child1, child2, ... childN)
แต่ที่นี่มีเพียงลำดับไม่child1
, child2
ฯลฯ ดังนั้นนี้จะช่วยให้ลำดับผลที่จะใช้เป็นข้อมูลในการสร้าง
การเข้ารหัสที่มีความสุข
1สิ่งนี้ไม่มีชื่อน่ารักใน SLS แต่นี่คือรายละเอียด สิ่งสำคัญที่จะได้รับคือมันเปลี่ยนวิธีที่สกาล่าผูกอาร์กิวเมนต์กับวิธีด้วยพารามิเตอร์ซ้ำ ๆ (ดังแสดงNode*
ด้านบน)
_*
ประเภทคำอธิบายประกอบจะครอบคลุมใน "4.6.2 พารามิเตอร์ซ้ำ" ของ SLS
พารามิเตอร์ค่าสุดท้ายของส่วนพารามิเตอร์อาจเป็น suf fi xed โดย“ *” เช่น (... , x: T *) ชนิดของพารามิเตอร์ที่ซ้ำกันภายในเมธอดนั้นเป็นชนิดลำดับลำดับ scala.Seq [T] วิธีการที่มีพารามิเตอร์ซ้ำแล้วซ้ำอีก T * รับจำนวนตัวแปรของอาร์กิวเมนต์ประเภท T นั่นคือถ้าเมธอด m ที่มีชนิด (p1: T1,..., pn: Tn, ps: S *) U ถูกนำไปใช้กับอาร์กิวเมนต์ (e1,....., ek) โดยที่ k> = n ดังนั้น m คือ ในแอพพลิเคชั่นนั้นจะมีประเภท (p1: T1,..., pn: Tn, ps: S,..., ps0S) U พร้อมกับ k ¡ n ที่เกิดขึ้นของประเภท S ที่ชื่อพารามิเตอร์ใด ๆข้อยกเว้นเดียวสำหรับกฎนี้คือถ้าอาร์กิวเมนต์สุดท้ายถูกทำเครื่องหมายเป็นอาร์กิวเมนต์ลำดับผ่านหมายเหตุประกอบชนิด _ * หาก m ข้างต้นถูกนำไปใช้กับข้อโต้แย้ง (e1,..., en, e0: _ *) ดังนั้นประเภทของ m ในแอปพลิเคชันนั้นจะถูกนำไปเป็น (p1: T1,...., pn: Tn, ps: scala .Seq [S])