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

【Ruby3.x】Complex::coerce()メソッドの使い方

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

作成日: 更新日:

基本的な使い方

coerceメソッドは、Rubyにおいて異なる数値型同士で算術演算を行う際に、両方のオペランド(演算対象)を同じ型に変換し、計算を可能にするためのメソッドです。特に、このメソッドが呼び出されるオブジェクト(レシーバ)が、演算相手となる引数よりも「低位」の型であるとRubyが判断した場合に機能します。具体的には、レシーバと引数の両方を、より高位の型(例えば、整数と浮動小数点数であれば浮動小数点数)に調整し、その変換後のオブジェクトのペアを配列として返します。配列の形式は[変換後の引数, 変換後のレシーバ]となります。

Complexクラスにおけるcoerceメソッドは、整数(Integer)、浮動小数点数(Float)、有理数(Rational)などの他の数値型がComplexオブジェクトとの算術演算に含まれる際に、これらの型をComplex型に変換するために使われます。例えば、1 + Complex(0, 1) のような計算では、整数 1Complex(1, 0) に変換され、Complexオブジェクト同士の演算として処理されます。これにより、Rubyは型が異なる数値が混在する計算でも、型の整合性を保ちつつ、柔軟かつ正確な処理を実現しています。このメソッドは通常、+, -, *, /といった算術演算子が内部的に呼び出すため、プログラマが直接呼び出す機会は稀です。

構文(syntax)

1Complex(1, 2).coerce(3) # => [Complex(3, 0), Complex(1, 2)]

引数(parameters)

other

  • other: 比較対象となる数値 (Integer, Float, Rational, BigDecimal, Numeric)

戻り値(return)

Array

coerce メソッドは、自身を他の数値型(Integer, Float, Rational, Complex)に変換する際の、もう一方のオペランドとの演算に使用できる値の配列を返します。この配列の最初の要素は変換された self、2番目の要素は変換されたもう一方のオペランドです。

関連コンテンツ

関連プログラミング言語