15

私は、scalaのサブタイプポリモーフィズムの代替案の完全なセットを知りたいと思っています。

4

1 に答える 1

23

Scalaで静的にチェック可能なポリモーフィズムを実現するための基本的なツールは次のとおりです。

  • サブタイピング(ボグ標準のOOポリモーフィズム)
  • タイプのパラメーター化(多形分散と制約を許可)
  • セルフタイピング(OOポリモーフィズムの制限と特殊化を可能にします)
  • 暗黙の変換(事後の多態的な構築を可能にします)
  • 構造型(型ではなく、特徴に基づいたポリモーフィズムを可能にします)
  • 一般的な型の境界(許可されたポリモーフィズムに対する非常に正確な制約を可能にする)
  • パターンマッチング(抽象データ型と同様に、データ構造に基づくポリモーフィズムを可能にします)
  • より種類の多いタイプ(ポリモーフィック構造よりもポリモーフィズムを可能にする)

これらすべてを「代替」と呼ぶのは、非常によく統合されているため、おそらく間違った言葉です。これらのツールのいくつかを組み合わせて使用​​することにより、一部の多態性アルゴリズムが表現されることは珍しくありません。

また、Scalaポリモーフィズムにおける理解の場所にも注目する価値があります。内包表記については、特に多形ではないようです。表面下では、for-comprehensionsはfilter / map / flatMapを呼び出すための単なる構文糖衣であり、これらのメソッドの実装は非常に多形になる傾向があります。したがって、比較的単純なforループのように見えるものは、いくつかの非常に印象的な多形効果をもたらす可能性があります。

于 2010-08-29T20:20:46.603 に答える