1
我有一個簡單的抽象數據類型樹。具有泛型類型的可變長度參數scala
sealed trait Tree[A]
case object EmptyTree extends Tree[Nothing]
case class Leaf[A](value: A) extends Tree[A]
case class Node[A](op: A => A, branches: List[Tree[A]]) extends Tree[A]
我怎樣才能使一個Node
持有接受A型的參數可變長度號碼的操作?
一種爲例:
def printAll(strings: String*) {
strings.foreach(println)
}
printAll
接收可變數目的串。
以同樣的方式,我想讓我的樹持有A* => A
類型的操作op
。
一種可能的方法是讓它獲得List[A]
,但我想知道是否沒有更直接的方法來做到這一點。
的方式可我還反過來branches: List[Tree[A]]
成類似branches: Tree[A]*
。從設計的角度來看,這是否有意義?
去測試它,這是有道理的,不是你的回答 –
順便說一下,可我也做'branches:List [Tree [A]]''像'branches:Tree [A] *'。 從設計的角度來看,這是否有意義? –
當你想要一個接受n個元素作爲參數的函數時,可變參數是有意義的,但是當你聲明一個類的字段時它的意義不大。但是它取決於你使用它。 – Mikel