私は、scalaのサブタイプポリモーフィズムの代替案の完全なセットを知りたいと思っています。
1 に答える
23
Scalaで静的にチェック可能なポリモーフィズムを実現するための基本的なツールは次のとおりです。
- サブタイピング(ボグ標準のOOポリモーフィズム)
- タイプのパラメーター化(多形分散と制約を許可)
- セルフタイピング(OOポリモーフィズムの制限と特殊化を可能にします)
- 暗黙の変換(事後の多態的な構築を可能にします)
- 構造型(型ではなく、特徴に基づいたポリモーフィズムを可能にします)
- 一般的な型の境界(許可されたポリモーフィズムに対する非常に正確な制約を可能にする)
- パターンマッチング(抽象データ型と同様に、データ構造に基づくポリモーフィズムを可能にします)
- より種類の多いタイプ(ポリモーフィック構造よりもポリモーフィズムを可能にする)
これらすべてを「代替」と呼ぶのは、非常によく統合されているため、おそらく間違った言葉です。これらのツールのいくつかを組み合わせて使用することにより、一部の多態性アルゴリズムが表現されることは珍しくありません。
また、Scalaポリモーフィズムにおける理解の場所にも注目する価値があります。内包表記については、特に多形ではないようです。表面下では、for-comprehensionsはfilter / map / flatMapを呼び出すための単なる構文糖衣であり、これらのメソッドの実装は非常に多形になる傾向があります。したがって、比較的単純なforループのように見えるものは、いくつかの非常に印象的な多形効果をもたらす可能性があります。
于 2010-08-29T20:20:46.603 に答える