Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Module::<=>()メソッドの使い方

<=>メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

<=>メソッドは、Module クラスに所属し、オブジェクト間の比較を実行するメソッドです。これは「宇宙船演算子」とも呼ばれ、主に2つのオブジェクトの相対的な順序を判断するために使用されます。このメソッドは、self(メソッドが呼び出されたオブジェクト)と引数 other を比較し、結果を整数で返します。具体的には、selfother より小さい場合は負の整数(慣習的に -1)、等しい場合は 0、大きい場合は正の整数(慣習的に 1)を返します。

このメソッドが特に重要となるのは、Rubyの Comparable モジュールと組み合わせて使用される場合です。Comparable モジュールをクラスにインクルードし、そのクラス内で <=> メソッドを適切に定義するだけで、Rubyは自動的に <, >, <=, >=, ==, between? といったすべての比較演算子やメソッドを提供します。これにより、開発者はオブジェクトの比較ロジックを <=> メソッド一つに集約することができ、コードの重複を避け、一貫性のある比較動作を保証できます。例えば、数値や文字列のように、順序を持つデータを扱うカスタムクラスを作成する際に非常に役立ちます。

構文(syntax)

1module MyModuleA; end
2module MyModuleB; end
3
4MyModuleA <=> MyModuleB

引数(parameters)

other

  • other: 比較対象となるオブジェクト

戻り値(return)

Integer or nil

演算子 <=> は、レシーバと引数を比較し、レシーバが引数より小さい場合は -1、等しい場合は 0、大きい場合は 1 を返します。比較できない場合は nil を返します。

関連コンテンツ

関連プログラミング言語