2014-10-29 40 views
2

ListBuffers的文檔提供了兩種將ListBuffer轉換爲List的方法:resulttoListScala - ListList與ListBuffer上的結果?

result表示它從添加的元素生成一個集合,並且之後的內容未定義。

toList似乎取而代之的做一個緩衝區內容的恆定時間的懶惰副本(可能會使緩衝區完好無損)。

如果toList是恆定時間,我們什麼時候會喜歡result?而且我是否正確理解這個toList會保存緩衝區的內容?

+12

如果我們看看源代碼(https://github.com/scala/scala/blob/v2.11.4/src/library/scala/collection/mutable/ListBuffer.scala#L1),我們看到'def result :列表[A] = toList' :) – 2014-10-29 22:12:22

+0

@Paul - 您應該將其作爲回答發佈,以便問題可以關閉。 – 2014-10-30 16:10:34

+0

我不確定這是一個答案。這是一個實現人工製品。未來的版本可能會決定做兩個不同的事情。 – 2014-10-30 17:33:42

回答

3

如果我們看一下at the source我們看到

def result: List[A] = toList 

所以(至少在當前版本斯卡拉的),沒有必要喜歡一個到另一個。