我在 Scala编程中发现了这个代码示例,第2版。(第25章,清单25.11):
object PrefixMap extends {
def empty[T] = ...
def apply[T](kvs: (String, T)*): PrefixMap[T] = ...
...
}
为什么那里的extends
子句没有超类名?它看起来像扩展一个匿名类,但出于什么目的?随附的文字没有解释甚至在任何地方提到这种结构。代码实际上编译并且显然在有或没有它的情况下都能正常工作。
OTOH我在几个网页上找到了完全相同的代码,包括this(看起来像本书章节的原始版本)。我怀疑从现在这么多读者的雷达下面已经过了一个错字...所以我错过了什么?
我试图谷歌它,但努力找到适当的搜索条件。那么有人可以解释这个构造在Scala中是否有名称和/或实际用途吗?
答案 0 :(得分:3)
对我来说看起来像是打印错误。尽管如此,它仍然会起作用,这可能有助于隐藏它。
无论如何,该对象正在扩展结构类型,但如果最后有with XXX
,它也可以是早期初始化。 MMMMM。它看起来更像是一个早期的初始化,没有任何类或特性可以在以后初始化,实际上...结构类型不包含代码,我认为。