我需要的是这样的:双变量参数列表
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)
你可以有多个参数列表,每一个都可以有(或仅仅是)一个重复-args参数:
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
我在斯卡拉2.8 REPL跑这个。我不知道2.7的原因,不适用。
我不相信你可以有多个可变参数。你也许可以做类似
class Node(left: Node*) {
def apply(right: Node*) = ...
,然后你可以创建new Node(n1,n2)(n3)
这工作:
class Node (left : Node*) (right : Node*)
斯卡拉是伟大的!
@Łukasz卢:我只有9秒落后了! – 2010-05-09 01:01:35
所以我会给你回答的伟大的绿色勾号:) – 2010-05-09 09:14:44