【Ruby3.x】Object::Comparable定数の使い方
Comparable定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
Comparable定数は、Rubyのオブジェクトが他のオブジェクトとの間で大小関係を比較可能にするための機能を提供する定数です。このComparable定数は、具体的にはモジュールであり、あるクラスにincludeされることで、そのクラスのインスタンスが標準的な比較演算子(<, <=, ==, >, >=)や、between?メソッドなどの比較関連機能を利用できるようになります。これにより、開発者はオブジェクト間の順序付けロジックを簡潔に定義し、コレクションのソートや要素の検索を容易に実現できます。Comparableをincludeしたクラスは、自身のオブジェクトと他のオブジェクトを比較し、小さい場合は-1、等しい場合は0、大きい場合は1を返す<=>(宇宙船演算子)メソッドを必ず実装する必要があります。この<=>メソッドの実装に基づいて、Comparableが提供する各種比較メソッドが自動的に機能するため、比較ロジックの一貫性と再利用性が高まります。
構文(syntax)
1class MyClass 2 include Comparable 3 4 attr_reader :value 5 6 def initialize(value) 7 @value = value 8 end 9 10 def <=>(other) 11 self.value <=> other.value 12 end 13end
引数(parameters)
引数なし
引数はありません
戻り値(return)
Module
Comparableモジュールは、オブジェクト間の比較演算子(<, <=, >, >=, ==, eql?, between?)を実装するために mix-in されることで、比較可能なオブジェクトを作成します。