2011-07-04 24 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

相關問題