流诉 SeqView

Posted

技术标签:

【中文标题】流诉 SeqView【英文标题】:Stream v. SeqView 【发布时间】:2013-12-23 16:19:36 【问题描述】:

Stream 上使用SeqView 的用例有哪些?

scala> List(1,2).view
res34: scala.collection.SeqView[Int,List[Int]] = SeqView(...)

scala> List(1,2).view.toStream
res33: scala.collection.immutable.Stream[Int] = Stream(1, ?)

也许如果您需要访问Stream 的中间并且访问Stream 元素的成本很高,那么您会使用SeqView

【问题讨论】:

这几乎是这个问题的重复:***.com/questions/5159000/… 另见:***.com/questions/4798043/… 和 ***.com/questions/3361478/… 谢谢 - 我会删除这个问题 视图已损坏,请勿使用。 Point. @Kevin Meredith Nah,这个问题和答案确实对您的建议给出了简洁明了的回答。 【参考方案1】:

SeqView 并不比Stream 便宜。事实上,访问SeqView 中的元素比访问Stream 中的元素成本更高,因为Stream 缓存了它计算的结果,但SeqView(或任何其他Views)没有。

【讨论】:

以上是关于流诉 SeqView的主要内容,如果未能解决你的问题,请参考以下文章