- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在scala集合库中Buffer
继承自Seq
:
Buffer[A] extends Seq[A] with GenericTraversableTemplate[A, Buffer] with BufferLike[A, Buffer[A]] with scala.Cloneable
Buffer
文档说:
Buffers are used to create sequences of elements incrementally by appending, prepending, or inserting new elements. It is also possible to access and modify elements in a random access fashion via the index of the element in the current sequence.
虽然 IndexedSeq
文档说:
A base trait for indexed sequences.
Indexed sequences support constant-time or near constant-time element access and length computation. They are defined in terms of abstract methods apply for indexing and length.
Indexed sequences do not add any new methods to Seq, but promise efficient implementations of random access patterns.
由于 Buffer
已经扩展了 Seq
并且 IndexedSeq
没有向 Seq
添加任何方法Buffer 必须已经实现了 IndexedSeq
接口(interface)并且根据文档它应该满足 IndexedSeq
的非功能性要求。那么为什么 Buffer
不是 IndexedSeq
。
最佳答案
Buffer
不是 IndexedSeq
,因为它不保证接近恒定时间的元素访问和长度计算。例如,ListBuffer
两者都不支持,正如您在 description of the performance characteristics of Scala collections 中看到的那样.
关于scala - 为什么 Buffer 不是 IndexedSeq 的子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15142708/
你如何排序 IndexedSeq在斯卡拉的地方? API函数在哪里? 最佳答案 目前没有什么可以就地对它们进行排序。 如果您确实需要,可以转换 IndexedSeq到 Array[AnyRef]并使用
来自Java背景,我正在学习Scala,以下内容使我感到非常困惑。为什么在这两个(非常相似但又不同)的构造中返回的类型不同,这些构造仅在构建源集合的方式上有所不同- val seq1: Index
在scala集合库中Buffer继承自Seq: Buffer[A] extends Seq[A] with GenericTraversableTemplate[A, Buffer] with Buf
在scala集合库中Buffer继承自Seq: Buffer[A] extends Seq[A] with GenericTraversableTemplate[A, Buffer] with Buf
我有一个环绕 Seq.tail 的函数。我希望函数为 List 返回 List,为 IndexedSeq、Seq 返回 IndexedSeq > 对于 Seq。 目前我使用 asInstanceOf
在 Scala 2.11.2 中,以下最小示例仅在使用 时编译类型归属 在 Array[String] : object Foo { def fromList(list: List[Stri
在 Scala Collection documentation ,这个问题有一些线索: Trait Seq has two subtraits LinearSeq, and IndexedSeq.
我正在尝试解决 Codility 的 GenomicRangeQuery使用 Scala,为此我编写了以下函数: def solution(s: String, p: Array[Int], q: A
match有什么原因吗?写反对 Seq在 IndexedSeq 上的工作方式会有所不同类型比它在 LinearSeq 上的方式类型?对我来说,无论输入类型如何,下面的代码似乎都应该做完全相同的事情。当
我认为在 scala 中没有 Map[IndexedSeq[String], Int] 的默认格式(对吗?)所以我编写了自己的格式如下,但是它非常慢。有更好的方法吗? class IndexedSeq
不知道为什么下面的scala代码无法编译: import collection.immutable.Seq def foo(nodes: Seq[Int]) = null val nodes:Inde
我是一名优秀的程序员,十分优秀!