6

我在Programming in Scala, 2nd Ed 中找到了这个代码示例。(第 25 章,清单 25.11):

object PrefixMap extends {
  def empty[T] = ...

  def apply[T](kvs: (String, T)*): PrefixMap[T] = ...

  ...
}

为什么那里的extends子句没有超类名称?看起来像是扩展了一个匿名类,但目的是什么?随附的文本没有在任何地方解释甚至提到这个结构。该代码实际上可以编译,并且无论有没有它都可以完美地工作。

OTOH 我在几个网页上找到了完全相同的代码,包括这个(看起来像书中章节的原始版本)。我怀疑一个错字可能会在这么多读者的雷达之下通过……所以我错过了什么吗?

我试图用谷歌搜索它,但甚至很难找到合适的搜索词。那么有人可以解释这个结构在 Scala 中是否有名称和/或实际用途?

4

1 回答 1

3

对我来说似乎是打印错误。不过,它仍然可以正常工作,这可能有助于一直隐藏它。

无论如何,该对象正在扩展一个结构类型,尽管它也可能是一个早期初始化,如果你with XXX最后有的话。嗯。它看起来更像是一个没有任何类或特征的早期初始化,实际上……我认为结构类型不包含代码。

于 2013-02-22T22:47:36.137 回答