2014-10-29 2 views
2

Документация для ListBuffers предлагает два метода, которые конвертируют ListBuffer в список: result и toList.Scala - toList против результата в 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 : List [A] = toList' :) –

+0

@Paul - вы должны опубликовать это как ответ, поэтому вопрос можно закрыть. –

+0

Я не уверен, что это ответ. Это артефакт реализации. Возможно, будущая версия решит сделать это по-другому. –

ответ

3

Если мы посмотрим at the source мы видим

def result: List[A] = toList 

Так (по крайней мере, в текущей версии Scala), нет никакой необходимости предпочесть одно другому.

Смежные вопросы