オブジェクトの同一性と内容の等価性とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > オブジェクトの同一性と内容の等価性の意味・解説 

オブジェクトの同一性と内容の等価性

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/03/10 06:02 UTC 版)

関係演算子」の記事における「オブジェクトの同一性と内容の等価性」の解説

多く現代的なプログラミング言語においてオブジェクトデータ構造参照通じてアクセスされる。そのような言語では、2種類異な等価性判定する必要性生じる: 物理的な(浅い)等価 - 2つ参照が同じオブジェクト参照しているかどうか 構造的な(深い)等価 - 2つ参照参照するオブジェクトある意味において(たとえば内容が同じであるなど)等しかどうか 通常前者等価性後者等価性含意しているが(自身等しくないような NaN のようなものは除く)、逆は必ずしも真ではない。たとえば、2つ文字列オブジェクト別個のオブジェクトであるかもしれない前者の意味では等しくない)が、同じ文字並び持ちうる(後者の意味等しい)。 次の表では、これらの2種類等価性判定するための異な方法を、様々な言語において一覧できるようにしてある。 言語物理的な等価構造的な等価備考C, C++ a == b *a == *b aとbはポインタである C# object.ReferenceEquals(a, b)1 a.Equals(b)1 Common Lisp (eq a b) (equal a b) Java a == b a.equals(b) aとbは参照である OCaml a == b a = b Pascal a^ = b^ a = b Perl $a == $b $$a == $$b $aと$bはスカラーリファレンスである PHP5 N/A $a == $b $aと$bはオブジェクトである Python a is b a == b Ruby a.equal?(b) a == b Scheme (eq? a b) (equal? a b) VB.NET a Is b a = b Objective-C a == b [a isEqual:b] aとbはオブジェクトへのポインタである 1 C# では、参照型対する == 演算子既定で ReferenceEquals() メソッド呼び出し等価になるが、代わりに Equals() メソッド実行するように演算子オーバーロードをすることができる。このことによって、構造的な等価性の方がより直感的思われる型において、== で構造的な等価性判定するようにできる。特に文字比較において、このことが効果的である(Java文字列比較は a.equals(b) と書なければならないが、C# では a == b と書ける)。

※この「オブジェクトの同一性と内容の等価性」の解説は、「関係演算子」の解説の一部です。
「オブジェクトの同一性と内容の等価性」を含む「関係演算子」の記事については、「関係演算子」の概要を参照ください。

ウィキペディア小見出し辞書の「オブジェクトの同一性と内容の等価性」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



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

辞書ショートカット

すべての辞書の索引

「オブジェクトの同一性と内容の等価性」の関連用語

オブジェクトの同一性と内容の等価性のお隣キーワード
検索ランキング

   

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



オブジェクトの同一性と内容の等価性のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS