Rumah >pembangunan bahagian belakang >C++ >Kovarians vs. Kontravarian: Bagaimana Ia Berbeza dalam Pengaturcaraan?
dalam pemahaman tentang kerjasama dan pembalik: perbezaan utama dalam pengaturcaraan
Penyelarasan dan penyongsang adalah dua konsep penting dalam pengaturcaraan.
Kerjasama: Pastikan keserasian tugasan
Penyelarasan sesuai untuk fungsi pemetaan yang mengekalkan keserasian objek. Ini bermakna bahawa jika objek jenis X boleh diberikan kepada objek jenis Y, hasil penggunaan fungsi pemetaan ke X sentiasa boleh diberikan kepada hasil penggunaan fungsi ke Y.
Sebagai contoh, pertimbangkan satu set haiwan, termasuk haiwan, harimau, buah dan pisang. Dengan menentukan fungsi pemetaan dari haiwan ke iEnumerable, kita mendapat jenis berikut:
<code>{ Animal, Tiger, Fruit, Banana } → { IEnumerable<Animal>, IEnumerable<Tiger>, IEnumerable<Fruit>, IEnumerable<Banana> }</code>dan tidak dapat dipertikaikan
⇒ tidak dapat disangkal
berbeza dari koordinasi, penyongsang membalikkan hubungan keserasian tugasan. Ini bermakna jika objek jenis X boleh diberikan kepada objek jenis Y, hasil penggunaan fungsi pemetaan ke Y boleh diberikan kepada hasil pemakaian fungsi ke X. Pertimbangkan koleksi jenis IComable:
Dalam C#, kita melihat hubungan yang serasi berikut:
<code>{ IComparable<Tiger>, IComparable<Animal>, IComparable<Fruit>, IComparable<Banana> } → { IC<Tiger>, IC<Animal>, IC<Fruit>, IC<Banana> }</code>Fungsi pemetaan aplikasi membalikkan arah keserasian. Tingkah laku ini memastikan bahawa peranti yang dapat membandingkan haiwan dapat membandingkan harimau, jika tidak, ia bukan yang lain.
ringkasan
<code>Animal ⇒ Tiger Tiger ⇒ Tiger Banana ⇒ Banana Fruit ⇒ Banana Fruit ⇒ Fruit</code>
Atas ialah kandungan terperinci Kovarians vs. Kontravarian: Bagaimana Ia Berbeza dalam Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!