为什么在Scala中追加List返回其他List类型?

时间:2015-03-30 19:55:32

标签: list scala collections types

由于搜索:+不会产生任何结果(感谢谷歌!)我找不到任何问题的答案:

为什么:

a :+ b

导致

List[Any]

如果'a'和'b'都是

类型
List[Int]

自己尝试一下,以下不会编译(Scala 2.11.6,Idea14)​​:

object AAA extends App {
  val a: List[Int] = List[Int]()
  val b: List[Int] = List[Int]()

  val x: List[Int] = a :+ b
}
事先提前

1 个答案:

答案 0 :(得分:6)

:+将单个元素附加到List。因此,您要将List[Int]附加到List[Int],从而产生类似的内容(如果ab都设置为List(1, 2)):

List(1, 2, List(1, 2))

Scala计算元素类型(Int)与您追加的内容(List[Int])之间最常见的类型,即Any

您可能想要连接两个列表:

val x: List[Int] = a ++ b