将Seq [T]作为Scala中的vararg传递

时间:2013-08-05 09:07:05

标签: scala sequence variadic-functions

此代码无法编译

val sortedSet = SortedSet[Int](Array(1,2,3,4).toSeq)

  Error: type mismatch; found  :Seq[Int] required Int

但是,以下是SortedSet中apply的定义:

def apply[A](elems: A*)(implicit ord: Ordering[A]): CC[A] = (newBuilder[A](ord) ++= elems).result

它说elem是一个vararg因此应该是Seq [A]类型 我错过了什么?为什么我不能将Seq作为vararg传递?

1 个答案:

答案 0 :(得分:7)

只需添加: _*

即可
scala> SortedSet[Int](Array(1,2,3,4).toSeq: _*)
res2: scala.collection.immutable.SortedSet[Int] = TreeSet(1, 2, 3, 4)