6

このコード例は、Programming in Scala、第 2 版で見つけました。(第25章、リスト25.11):

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

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

  ...
}

extendsスーパークラス名のない節があるのはなぜですか? 匿名クラスを拡張しているように見えますが、何の目的でしょうか? 付随するテキストでは、この構造については説明されておらず、どこにも言及されていません。コードは実際にコンパイルされ、コードの有無にかかわらず完全に動作するようです。

OTOHこれを含むいくつかのWebページでまったく同じコードを見つけました(本の章の元のバージョンのように見えます)。タイプミスがこれまで多くの読者のレーダーの下を通過した可能性はないと思います...だから、私は何かを見逃していますか?

私はそれをグーグルで検索しようとしましたが、適切な検索用語を見つけることさえ苦労しました. では、誰かがこの構造に名前があるかどうか、および/または Scala で実際に使用されているかどうかを説明できますか?

4

1 に答える 1

3

私には印刷エラーのように見えます。ただし、それはまったく同じように機能するため、おそらくこれまでずっと隠していました。

とにかく、そのオブジェクトは構造型を拡張していますが、最後にあった場合は早期の初期化である可能性もありますwith XXX。うーん。後で初期化するクラスや特性を持たない初期初期化のように見えますが、実際には...構造体型にはコードが含まれていないと思います。

于 2013-02-22T22:47:36.137 に答える