【Ruby3.x】Float::coerce()メソッドの使い方
coerceメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
coerceメソッドは、異なる型のオブジェクト間で算術演算などの操作を行う際に、型を自動的に揃える(型強制する)ための仕組みを提供するメソッドです。このFloatクラスに属するcoerceメソッドは、レシーバであるFloatオブジェクトと、引数として渡されたotherオブジェクトを、両方ともFloat型に変換してペアとして返すことで、統一的な演算を可能にします。
具体的には、Float#coerce(other)が呼び出されると、まず引数otherをFloat型に変換しようと試みます。例えば、otherがInteger(整数)であれば、その整数値に対応するFloat値(浮動小数点数)に変換されます。otherがすでにFloat型であれば、そのままFloatとして扱われます。もしotherが数値としてFloat型に変換できない場合は、TypeErrorが発生します。
そして、このメソッドは変換されたother(otherがFloatになったもの)と、レシーバであるFloat自身を要素とする2要素の配列[other_as_float, self]を返します。これにより、例えばInteger + Floatのような計算において、Rubyの内部でこのcoerceメソッドが呼ばれ、IntegerがFloatに変換された上でFloat同士の計算が行われるようになります。この仕組みは、Rubyが異なる数値型間の柔軟な演算をサポートするための重要な役割を担っています。
構文(syntax)
1[other.to_f, self] = Float#coerce(other)
引数(parameters)
other
- other: 比較対象となる数値オブジェクト
戻り値(return)
[Float, Float]
このメソッドは、Floatオブジェクトと他の数値型オブジェクトとの間で算術演算を行うために、両方のオペランドをFloat型に変換した配列を返します。