【Ruby3.x】Complex::<=>()メソッドの使い方
<=>メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
<=>メソッドは複素数オブジェクトの比較を実行するメソッドです。RubyのComplexクラスに属しており、主に「宇宙船演算子」とも呼ばれるこのメソッドは、2つのオブジェクトの順序関係を評価するために使用されます。しかし、複素数には実数のようには明確な大小関係が定義されていません。そのため、Complex#<=>メソッドは特殊な動作をします。具体的には、自身(レシーバ)と引数で与えられた複素数の実部が等しく、かつ虚部も等しい場合にのみ0を返します。これは、両者が完全に一致していることを示します。それ以外の場合、つまり実部や虚部のいずれか、または両方が異なる場合には、nilを返します。nilを返すことは、これらの複素数の間に明確な大小関係が存在せず、順序付けができないことを意味します。この動作は、複素数の数学的な性質に基づいています。したがって、Complex#<=>メソッドは、オブジェクトが「等しいか、それ以外か」を判断するために用いられ、大小関係を評価する用途には適していません。
構文(syntax)
1Complex(1, 2) <=> Complex(1, 2)
引数(parameters)
req
- req: 比較対象の複素数または実数
戻り値(return)
nil
Complexクラスの<=>メソッドは、オブジェクトの比較結果を整数で返します。ただし、複素数同士の比較は定義されていないため、常にnilを返します。