我需要这样的东西:
class Node (left : Node*, right : Node*)
我理解这个签名的模棱两可。
有没有比以下更好的解决方法?
class Node (left : Array[Node, right : Array[Node])
val n = new Node (Array(n1, n2), Array(n3))
也许像这样的某种分隔符?
val n = new Node (n1, n2, Sep, n3)
我需要这样的东西:
class Node (left : Node*, right : Node*)
我理解这个签名的模棱两可。
有没有比以下更好的解决方法?
class Node (left : Array[Node, right : Array[Node])
val n = new Node (Array(n1, n2), Array(n3))
也许像这样的某种分隔符?
val n = new Node (n1, n2, Sep, n3)
您可以有多个参数列表,每个参数列表可能有(或只是)一个重复参数:
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
我在 Scala 2.8 REPL 中运行了这个。我不知道它在 2.7 中不起作用的原因。
这有效:
class Node (left : Node*) (right : Node*)
斯卡拉很棒!
我不相信你可以有多个可变参数。你也许可以做类似的事情
class Node(left: Node*) {
def apply(right: Node*) = ...
然后你可以创建new Node(n1,n2)(n3)