2011-07-04 25 views
50
val list1 = List(1,2) 
val list2 = List(3,4) 

然后什么之间的区别::和:::在斯卡拉

list1::list2 returns: 

List[Any] = List(List(1, 2), 3, 4) 

list1:::list2 returns: 

List[Int] = List(1, 2, 3, 4) 

我看到书中写道,当使用::这也导致List[Int] = List(1, 2, 3, 4)。我的Scala版本是2.9。

回答

62

::前置单个项目,而::: prepends一个完整的列表。因此,如果您将List放在::之前,它将作为一个项目使用,从而产生嵌套结构。

+0

由于性能原因,'::'和':::'之间是否有区别? – null

+1

性能应该是'O(n)','n'是需要预先考虑的元素的数量。 – Debilski

相关问题