共分散と違反:プログラミングの明確な区別
共分散と矛盾は、タイプの関係が関数マッピングとデータ構造の入力/出力タイプにどのように影響するかを定義するプログラミングの基本的な概念です。 基本的に、共分散は割り当て可能性の方向を保持しますが、違反はそれを逆転させます
共分散:割り当て可能性の維持
タイプセットで説明しましょう:
<code>{ Animal, Tiger, Fruit, Banana } { IEnumerable<Animal>, IEnumerable<Tiger>, IEnumerable<Fruit>, IEnumerable<Banana> }</code>
は、割り当て可能性を維持します。 Tiger
のサブタイプである場合、Animal
はIEnumerable<Tiger>
のサブタイプでもあります。これは、サブタイピングが含まれる要素に適用されるコンテナタイプで一般的です。
IEnumerable<Animal>
インバリバティの割り当て。
の場合、<code>{ IComparable<Tiger>, IComparable<Animal>, IComparable<Fruit>, IComparable<Banana> }</code>
はAnimal
Tiger
重要な違いIComparable
以上が共分散と違反:これらの概念はプログラミングでどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。