総称化データ構造の事例とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 総称化データ構造の事例の意味・解説 

総称化データ構造の事例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/22 07:06 UTC 版)

共変性と反変性 (計算機科学)」の記事における「総称化データ構造の事例」の解説

総称データ構造での共変性と反変性は、総称化されデータ要素サブタイプ関係を、そのコンテナであるデータ構造サブタイプ関係にどのように反映させるのかを定義するのである総称データ構造は、ジェネリッククラスとして実装されることが多い。ListSetMapなどが代表である。 総称コンテナContainerのように書式される。ここでCatAnimalサブタイプとすると、ListListのサブタイプ関係は、以下のようになる。 非変(nonvariant)は、要素型のサブタイプ関係をコンテナに反映しない。ListとListは別系統のクラスになる。従ってList型の変数に、List型のインスタンスを代入するサブタイピングなどは出来ない。 共変(covariant)は、要素型のサブタイプ関係をそのまま(正方向で)コンテナに反映させる。ListはListのサブタイプになる。これはList型の変数に、List型のインスタンスを型安全に代入したい時などに使う。 反変(contravariant)は、要素型のサブタイプ関係を逆方向にしてコンテナに反映させる。ListはListのサブタイプになるが、これは単に型安全でなくなるだけである。反変でのデータ要素は写像(第一級関数)にされることが多く、写像の定義域の型の反変がコンテナに反映される。特化された定義域の写像コンテナを、汎化された定義域の写像コンテナで置き換えたい時などに使う。 双変(bivariant)は、要素型のサブタイプ関係を双方向にしてコンテナに反映させる。反変と同様にそのデータ要素は写像にされることが多い。双変は例えば、特化された定義域の写像コンテナと、汎化された定義域の写像コンテナを相互に置き換え可能にしたい時などに使われ、その写像の値域は通常invariantなのでList<特化> ≡ List<汎化> になる。

※この「総称化データ構造の事例」の解説は、「共変性と反変性 (計算機科学)」の解説の一部です。
「総称化データ構造の事例」を含む「共変性と反変性 (計算機科学)」の記事については、「共変性と反変性 (計算機科学)」の概要参照ください

ウィキペディア小見出し辞書の「総称化データ構造の事例」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「総称化データ構造の事例」の関連用語

総称化データ構造の事例のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



総称化データ構造の事例のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの共変性と反変性 (計算機科学) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS