【Ruby3.x】Integer::coerce()メソッドの使い方
coerceメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
coerceメソッドは、異なる数値型間で演算を行う際に、自身(レシーバ)と引数の型を調整し、両者を共通の型に変換するメソッドです。このメソッドは、引数として渡された値とレシーバを、演算可能な最も適切な共通の型に変換し、その結果を2要素の配列として返します。返される配列の最初の要素は変換された引数の値、2番目の要素は変換されたレシーバ自身の値となります。
例えば、Integer型のオブジェクトに対してFloat型のオブジェクトとの演算が行われる場合、coerceメソッドはInteger型のレシーバとFloat型の引数の両方をFloat型に変換することで、浮動小数点数演算として正確な結果が得られるようにします。これにより、Rubyの数値演算は異なる数値型が混在しても柔軟かつ安全に実行されます。
このメソッドは、プログラマーが直接呼び出すことは稀で、通常はRubyの内部的な数値演算機構において、+、-、*、/などの二項演算子が異なる数値型間で使われた際に自動的に呼び出されます。もし引数を適切な型に変換できない場合、TypeErrorが発生し、不正な演算を防ぎます。数値計算における型の整合性を保つための重要な役割を担っています。
構文(syntax)
110.coerce(3.14)
引数(parameters)
req
- other: 整数以外の数値オブジェクト
戻り値(return)
[Numeric, Numeric]
Integerクラスのcoerceメソッドは、自身を引数として受け取った数値オブジェクトとの間で演算可能な形に変換するための配列を返します。具体的には、[self, other]という形式の配列で、selfはIntegerオブジェクト自身、otherは引数として渡された数値オブジェクトです。このメソッドは、異なる数値型間での演算を可能にするために使用されます。