読み方 : うちゅうせんえんざんし

宇宙船演算子【<=>】spaceship operator

別名  :三方比較演算子/three-way comparison operator

概要

宇宙船演算子とは、プログラミング言語に用意されている比較演算子の一つで、二つの値の大小関係を一度の操作で判定し、三通りの結果を返すもの。「<=>」という記号で表記されることが多く、左辺が右辺より大きい場合、等しい場合、小さい場合のそれぞれに異なる値を割り当てる。
宇宙船演算子のイメージ画像

2つの値xとyを「x <=> y」のように記述して比較すると、xがyより大きい場合は「1」、xとyが等しい場合は「0」、xがyより小さい場合は「-1」を返す。通常の比較演算子は真または偽の二値しか返さないが、宇宙船演算子は一度の評価で大小と等価の判定を同時に行える。

数値の比較に限らず、言語によっては文字列や日付、利用者が定義したクラス構造体など、順序関係を定義できる様々なデータ型に適用できる。ソート処理における比較ロジックの記述や、データ構造内部での順序判定などに用いられる。なお、非数NaN)のように順序を定義できない値が含まれる場合、未定義を表す特別な値を返す仕様になっている言語もある。

「<=>」という記号そのものを演算子として使える言語には、PerlRubyPHP、Groovyなどがある。C++言語では従来この記号は用意されていなかったが、2020年に制定されたC++20規格において「三方比較演算子」として標準化された。C++20では比較演算子群を自動生成する仕組みとも連携し、クラス構造体の比較処理を簡略化できる。

一方、同様の比較機能を演算子ではなく関数やメソッドの形で提供する言語もある。Javaおよびその互換言語であるKotlinではcompareToメソッド、C#などの.NET系言語ではCompareToメソッドがこれに相当する。いずれも戻り値の意味はおおむね宇宙船演算子と共通しており、正の値、0、負の値によって大小関係を表す。Pythonでは、バージョン2.x系においてcmp関数が同様の役割を担っていたが、3.x系への移行に伴い廃止された。

(2026.6.23更新)
 

他の辞典等による「宇宙船演算子」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。