【问题标题】:Scala - toList vs. result on ListBuffer?Scala - toList 与 ListBuffer 上的结果?
【发布时间】:2014-10-29 22:02:20
【问题描述】:

ListBuffers 的文档提供了两种将 ListBuffer 转换为 List 的方法:resulttoList

result 说它会从添加的元素中生成一个集合,并且之后的内容是未定义的。

toList 似乎改为对缓冲区内容进行恒定时间的惰性复制(并且可能使缓冲区保持原样)。

如果toList 是常数时间,我们什么时候会更喜欢result?而且我是否正确理解toList 将保留缓冲区的内容?

【问题讨论】:

  • 如果我们查看源代码 (github.com/scala/scala/blob/v2.11.4/src/library/scala/…),我们会看到 def result: List[A] = toList :)
  • @Paul - 您应该将其发布为答案,以便可以关闭问题。
  • 我不确定这是一个答案。这是一个实现工件。也许未来的版本会决定以不同的方式做这两个。

标签: scala listbuffer


【解决方案1】:

如果我们查看at the source,我们会看到

def result: List[A] = toList

所以(至少在当前版本的 Scala 中),没有必要偏爱一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多