ついてきちんと整理したほうがよさそうな気がしたので,小ネタ記事として公開する。用語の定義(暫定)本題に入る前に,以下の2つの単語を,この記事限りの用語として定義する。インスタンスの型が同一(identical)であることプログラミングの世界で等値と等価に関して議論があることは知っているが,今回はまるっと無視する。equalの5つが定義されている。使えることを「比較可能(comparable)」であると言う。型の比較可能性インスタンス同士が比較可能であるためには以下の2つの条件がが必要である。インスタンスの型が同一(等価)であることインスタンスの型が比較可能であることたとえばある型を別の型に再定義しただけの場合でも等価とは見なされず,コンパイルエラーになる。//true}などとできる。あれば等価とみなされる。浮動小数点数型における(ゼロ除算などの)特別な状態を示す。自体は比較可能なのだが,常に同じ結果を返すので,比較演算子は使えない。構造体は,要素の型が全て比較可能であれば,比較可能である。配列は,要素の型が比較可能であれば,比較可能である。等価ではないのでご注意を。Slice」を参考にどうぞ。ポインタの型ポインタはインスタンスのアドレッシングを指すものだが,等価なインスタンスのポインタであれば比較可能である。型は比較可能ではないがポインタは比較できる(内容を比較しているわけではない)。参照など)ポインタ値の特別な状態を示す。ポインタと比較可能である。比較可能な型は以下の通り。型は型情報と値への参照を属性として持っている。動的な型も値も実行時に決まるからだ。インタフェースを適用してみる。インタフェースは以下のような構造になっている。型は,動的な型が比較可能であれば,比較可能である。型インスタンスの動的な型が等価で比較可能あれば値の等値性を調べられる。型インスタンスの動的な型と等価な型のインスタンスとも(比較可能な型であれば)比較できる。