関係演算子
次の表では、これらの2種類の等価性を判定するための異なる方法を、様々な言語において一覧できるようにしてある。
C# では、参照型に対する == 演算子は既定で ReferenceEquals() メソッドの呼び出しと等価になるが、代わりに Equals() メソッドを実行するように演算子オーバーロードをすることができる。このことによって、構造的な等価性の方がより直感的と思われる型において、== で構造的な等価性を判定するようにできる。特に文字列比較において、このことが効果的である(Java で文字列比較は a.equals(b) と書かなければならないが、C# では a == b と書ける)。ただし、変更可能 (mutable) な参照型の場合は、==演算子をオーバーロードすべきではないとされている。多くの.NET言語では、参照型における組み込みの比較演算子は参照の等価性を判定するために用意されているものであり、驚き最小の原則の観点からも、一般的にオーバーロードは避けるべきとされている。
計算機科学において、関係演算子(かんけいえんざんし、英: relational operator)または比較演算子(ひかくえんざんし、英: comparison operator)とは、プログラミング言語の演算子で、2つの対象の関係を調べるものをいう。たとえば、同値関係を調べる等号( 5 = 5 {\displaystyle 5=5} の = {\displaystyle =} )や、順序関係を調べる不等号( 4 > 3 {\displaystyle 4>3} の > {\displaystyle >} )などが含まれる。
JavaやC#など、独立したブーリアン型を型システムに持つ言語では、関係演算子は2つのオペランドの間に演算子が表す関係が成り立つかどうかによって真 (true) または偽 (false) を返す。一方で、C言語などのブーリアン型を持たない初期の言語では、関係演算子は整数 0(偽を意味する)または 1(真を意味する)を返す。
関係演算子を含む式は、関係式 (relational expression) または条件 (condition) と呼ばれる。また、技術的な文献において、関係を言葉で説明する代わりに関係演算子が用いられることもある。多くのプログラミング言語では、関係演算子は中置記法で記述される。たとえば、以下のC言語のコードは、x が y より小さい場合にメッセージを表示するものである。
他方で前置記法を採用している言語もある。たとえば、Lispでは以下のように書く。しかしこれは演算子というよりも、Lispでは識別子に使える文字の範囲が緩くて、単に >= という名前の関数であるというだけである。