双变量参数列表

Łuk*_*Lew 4 scala variadic-functions scala-2.8

我需要这样的东西:

class Node (left : Node*, right : Node*)
Run Code Online (Sandbox Code Playgroud)

我理解这个签名的模糊性.

有没有办法比以下更好?

class Node (left : Array[Node, right : Array[Node])
val n = new Node (Array(n1, n2), Array(n3))
Run Code Online (Sandbox Code Playgroud)

也许是这样的某种分隔符?

val n = new Node (n1, n2, Sep, n3)
Run Code Online (Sandbox Code Playgroud)

Ran*_*ulz 8

您可以拥有多个参数列表,每个参数列表可能包含(或只是)一个重复参数:

scala> def m1(ints: Int*)(strs: String*): Int = ints.length + strs.length
dm1: (ints: Int*)(strs: String*)Int

scala> m1(1, 2, 3)("one", "two", "three")
res0: Int = 6
Run Code Online (Sandbox Code Playgroud)

我在Scala 2.8 REPL中运行了这个.我不知道它在2.7中不起作用的原因.


Łuk*_*Lew 6

这有效:

class Node (left : Node*) (right : Node*)
Run Code Online (Sandbox Code Playgroud)

斯卡拉很棒!