読み方 : うちゅうせんえんざんし
宇宙船演算子【<=>】spaceship operator
別名 :三方比較演算子/three-way comparison operator
概要

2つの値xとyを「x <=> y」のように記述して比較すると、xがyより大きい場合は「1」、xとyが等しい場合は「0」、xがyより小さい場合は「-1」を返す。通常の比較演算子は真または偽の二値しか返さないが、宇宙船演算子は一度の評価で大小と等価の判定を同時に行える。
数値の比較に限らず、言語によっては文字列や日付、利用者が定義したクラスや構造体など、順序関係を定義できる様々なデータ型に適用できる。ソート処理における比較ロジックの記述や、データ構造内部での順序判定などに用いられる。なお、非数(NaN)のように順序を定義できない値が含まれる場合、未定義を表す特別な値を返す仕様になっている言語もある。
「<=>」という記号そのものを演算子として使える言語には、Perl、Ruby、PHP、Groovyなどがある。C++言語では従来この記号は用意されていなかったが、2020年に制定されたC++20規格において「三方比較演算子」として標準化された。C++20では比較演算子群を自動生成する仕組みとも連携し、クラスや構造体の比較処理を簡略化できる。
一方、同様の比較機能を演算子ではなく関数やメソッドの形で提供する言語もある。Javaおよびその互換言語であるKotlinではcompareToメソッド、C#などの.NET系言語ではCompareToメソッドがこれに相当する。いずれも戻り値の意味はおおむね宇宙船演算子と共通しており、正の値、0、負の値によって大小関係を表す。Pythonでは、バージョン2.x系においてcmp関数が同様の役割を担っていたが、3.x系への移行に伴い廃止された。
(2026.6.23更新)