- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在看RedBlackTree
的来源文件,我偶然发现了 Tree
的定义,我在此处复制了相关部分:
sealed abstract class Tree[A, +B](
@(inline @getter) final val key: A,
@(inline @getter) final val value: B,
@(inline @getter) final val left: Tree[A, B],
@(inline @getter) final val right: Tree[A, B])
@(inline @getter)
比较 @inline @getter
? val
s 合格 final
? (在这种情况下 final
不是多余的吗?)最佳答案
@(inline @getter)
语法是元注释的一个例子,它告诉编译器 @inline
注释应该放在生成的 getter 方法上(而不是构造器参数,这里是默认值):meta annotationsfinal
将生成的字段和 getter 标记为 final,因此它们不能被子类覆盖。
这个特殊的组合在这里被用来欺骗 Scala 编译器直接访问 Tree
的字段。实例,而不是调用 getter 并依靠 JVM 优化器来执行正确的内联。不幸的是,Scala 没有提供官方支持的直接使用字段的方式。
当为 Scala 2.10 优化红黑树时,这提供了最佳性能。查看不可变的 TreeMap/TreeSet pull request对于血腥的细节。
关于Scala RedBlackTree 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314424/
红黑树(Red Black Tree) 红黑树(Red Black Tree)是一种自平衡二叉查找树,是一种高效的查找树,学习之前先了解一下 平衡二叉树 。于 1972 年由 Rudolf
我在看RedBlackTree的来源文件,我偶然发现了 Tree 的定义,我在此处复制了相关部分: sealed abstract class Tree[A, +B]( @(inline @gette
我在用字符实例化 RedBlackTree 容器时遇到问题,但它适用于整数: import std.stdio; import std.container; void main() {
我需要一个类似于 STL 的双向迭代器 (operator class rbtree { public: rbtree(){ root = NULL; numberElem
我最终决定使用 std.RedBlackTree 而不是内置的关联数组(或散列),因为我需要一个排序的关联数组。所需的行为与 C++/STL 中的 std::map 非常相似。 void main()
来自 Data Structures and Problem Solving Using Java 的原始 Mark Allen Weis RedBlackTree 实现找到here . 我似乎无法理
我是一名优秀的程序员,十分优秀!