概要
宇宙船演算子という演算子が多くの言語にはあります。また、宇宙船演算子がなくても、似たような何かがある言語は更に多いです(.Net や Java の CompareTo
など)。
宇宙船演算子の定義には、若干のばらつきがあるものの、概ね次のようになります。
- 左の値が右の値より小さいなら、負の数を返す
- 左の値が右の値より大きいなら、正の値を返す
- 左右の値が等しいなら、0を返す
覚えかた
等しいときに 0 を返すのは良いのですが、正の数と負の数がどちらに対応するのか、覚えるのに時間がかかりませんか? 私はこれがなかなか覚えられずにいましたが、ある時非常にわかりやすい覚え方を発見しました。
宇宙船演算子 = 減算演算子
確認してみましょう。
- 左の値が右の値より小さいなら、負の数を返す
1 - 5 < 0
- 左の値が右の値より大きいなら、正の値を返す
5 - 1 > 0
- 左右の値が等しいなら、0を返す
1 - 1 = 0
もちろん、減算演算子が実装されているとは限りませんが、覚えるだけならこれで十分です。