为什么附加到 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]
,结果类似于(如果 a
和 b
都设置为 List(1, 2)
):
List(1, 2, List(1, 2))
Scala 计算元素类型 (Int
) 和你附加的东西 (List[Int]
) 之间最常见的类型,即 Any
.
您可能想要连接两个列表:
val x: List[Int] = a ++ b
由于搜索 :+ 没有得到任何结果(感谢 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]
,结果类似于(如果 a
和 b
都设置为 List(1, 2)
):
List(1, 2, List(1, 2))
Scala 计算元素类型 (Int
) 和你附加的东西 (List[Int]
) 之间最常见的类型,即 Any
.
您可能想要连接两个列表:
val x: List[Int] = a ++ b