【Ruby3.x】Complex::to_r()メソッドの使い方
to_rメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
to_rメソッドは、RubyのComplexクラスのインスタンスが保持する複素数を、Rationalクラスのインスタンスである有理数へ変換するメソッドです。Complexクラスは、数値の「実数部分」と「虚数部分」を持つ複素数を表現するために使用されます。一方、Rationalクラスは、分数のように整数を分母と分子で表現できる「有理数」を扱います。
このto_rメソッドは、呼び出し元のComplexオブジェクトの虚数部分がゼロである場合に限り、その実数部分を有理数として返します。例えば、Complex(5, 0)のように虚数部分がゼロの複素数に対してこのメソッドを呼び出すと、有理数であるRational(5, 1)(つまり整数5)が得られます。
しかし、もしComplexオブジェクトの虚数部分がゼロ以外である場合、例えばComplex(3, 2)のような複素数では、有理数への変換は数学的に不可能です。このような場合、to_rメソッドはRangeErrorというエラーを発生させます。RangeErrorは、値が期待される範囲や形式に合致しないときに通知されるエラーの一種です。したがって、このメソッドを利用する際は、変換元の複素数の虚数部分が必ずゼロであることを確認するか、変換できない可能性に備えてエラー処理を適切に行うことが重要です。
構文(syntax)
1Complex(3, 0).to_r
引数(parameters)
引数なし
引数はありません
戻り値(return)
Rational
虚数を含む数値(Complexオブジェクト)を、実数部と虚数部それぞれを分子と分母とする有理数(Rationalオブジェクト)のペアとして返します。