为什么附加到 Scala 中的列表会返回其他列表类型?

Why is appending to a List in Scala returning other List type?

由于搜索 :+ 没有得到任何结果(感谢 google!)我找不到我的问题的任何答案:

为什么是:

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
}

提前谢谢

:+ 将单个元素附加到 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