演算子の一種で、2つの対象(オペランド)の関係性を調べるものです。
宇宙船演算子は、2つのオペランドの値の関係性が、どちらも同じ(等価)、片方が小さい、片方が大きいのいずれであるのかを調べる演算子です。2つのオペランドの関係性を調べるものなので、関係演算子の一種でもあります。また、このような比較のことを、三方比較(一貫比較)などと呼びます。
宇宙船演算子は <=>
で表されます。宇宙船演算子という不思議な名前は、この表記の形状を宇宙船に見立てたものです。三方比較演算子と呼ぶ場合もあります。
詳細はプログラミング言語による違いもありますが、a <=> b
という式の結果は、a と b
が等価であれば 0、a の方が小さければ 0より小さい数、a の方が大きければ
0より大きい数になります(明確に 0、-1、1
のいずれかとしている場合もある)。ほかの関係演算子と違って結果が3通りあるので、ブール値にはなりません。
C言語には宇宙船演算子はありませんが、strcmp関数や memcmp関数の仕様は宇宙船演算子と同じです。いずれの関数も、2つの対象を比較して、同じであれば 0 を、左側が小さければ負の整数を、左側が大きければ正の整数を返します。
C++ では、C++20 で追加されています[1]。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |