我在 Programming in Scala, 2nd Ed 中找到了这个代码示例。 (第 25 章,代码 list 25.11):
object PrefixMap extends {
def empty[T] = ...
def apply[T](kvs: (String, T)*): PrefixMap[T] = ...
...
}
为什么是
extends
没有父类(super class)名称的子句?看起来像是扩展了一个匿名类,但目的是什么?随附的文本没有在任何地方解释甚至提到这个结构。代码实际上可以编译,并且无论是否使用它,都可以完美运行。OTOH 我在几个网页上发现了完全相同的代码,包括 this (这看起来像本书章节的原始版本)。我怀疑到目前为止,一个错字是否已经在这么多读者的关注之下……所以我错过了什么吗?
我试图用谷歌搜索它,但甚至找不到合适的搜索词。所以有人可以解释这个构造在 Scala 中是否有名称和/或实际用途吗?
最佳答案
对我来说看起来像是打印错误。尽管如此,它仍然可以正常工作,这可能有助于一直隐藏它。
无论如何,该对象正在扩展结构类型,尽管它也可能是早期初始化,如果您有 with XXX
在末尾。嗯嗯。它看起来更像是一个没有任何类或特征的早期初始化,实际上……结构类型不包含代码,我认为。
关于scala - Scala 对象定义中没有父类(super class)名称的 "extends {..}"子句有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45103438/