scala中Seq [Int]和List [Int]之间的差异和转换?

时间:2014-12-15 07:03:35

标签: scala functional-programming type-conversion containers

当我在REPL中输入Seq(1,2,3)时,它会返回List(1,2,3)

scala> Seq(1,2,3)
res8: Seq[Int] = List(1, 2, 3)

因此,我认为List(1,2,3)可能属于List[Int]类型。我试图指定分配给Seq(1,2,3)的变量的类型,但出乎意料的是,REPL抱怨如下:

scala> val a:List[Int]=Seq(1,2,3)
<console>:20: error: type mismatch;
 found   : Seq[Int]
 required: List[Int]
       val a:List[Int]=Seq(1,2,3)

有没有人对Seq[Int] = List(1, 2, 3)的含义有什么看法?难道不是Seq(1,2,3)返回列表吗? Seq[Int]List[Int]之间有什么区别? 以及如何在SeqList之间进行转换?

1 个答案:

答案 0 :(得分:8)

Seq是序列的基本特征(接口),List是该接口的具体实现。

List的每个实例都已经是Seq,因此无需转换任何内容。您可以使用toSeq方法,但我没有看到任何理由这样做。 要将Seq转换为List使用toList方法。