UFO演算子について。深掘りしきれなかったので、自分用メモです。。。
UFO演算子とは
<=>
という演算子があります。これは、両辺のオブジェクトを比較して値を返すものです。
self <=> otherで比較した時の挙動は
- 左が大きい =「1」
- 等しい =「0」
- 右が大きい=「-1」
となります。
これをもう少しわかりやすく書くと
1 <=> 0 #=> 1
1 <=> 1 #=> 0
0 <=> 1 #=> -1
となります。
また、UFO演算子を利用するために、Comparable
モジュールをインクルードする必要があります。
Comparable
モジュールをインクルードしたクラスでは、インスタンス同士を比較演算子を利用して比較することができます。
< , <= , == , > , >= , between?
<=>
演算子の使い方
先ほど説明した<
や>
などを利用することができますが、比較結果を-1、0、1を返すように定義する必要があります。
クラスに<=>演算子をメソッドで定義して、インスタンスを比較できるように定義し直して使う場合もあります。