【Ruby3.x】Numeric::coerce()メソッドの使い方
coerceメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
coerceメソッドは、RubyのNumericクラスに定義されており、異なる数値型のオブジェクト間で算術演算を行う際に、両者を互換性のある型に変換(強制型変換)するために実行されるメソッドです。これにより、整数と浮動小数点数など、異なる型の数値が混在する計算でも、型の不一致によるエラーを防ぎ、スムーズに処理を進めることができます。
このメソッドは、self(メソッドを呼び出した側の数値)と、演算相手のotherという二つの数値を引数として受け取ります。基本的な動作として、otherをselfの型に合わせて変換し、最終的に[otherを変換した値, self]という二つの数値を含む配列を返します。
具体的には、IntegerオブジェクトにFloatオブジェクトを加算する際、IntegerのcoerceメソッドがFloatを引数として呼び出されます。このとき、IntegerはFloatよりも数値の範囲が狭いため、selfとotherの両方をより広い範囲を扱えるFloat型に変換した[otherのFloat値, selfのFloat値]という配列を返します。これによって、Float同士の加算へと処理が引き渡され、計算が実行されます。
このcoerceメソッドは、Rubyの算術演算子(+, -, *, /など)が内部的に利用しており、開発者が明示的に型変換のコードを書くことなく、異なる数値型間の演算を自然に行えるようにする重要な役割を担っています。これにより、Rubyは数値計算において高い柔軟性と使いやすさを実現しています。
構文(syntax)
11.coerce(2.0)
引数(parameters)
other
- other: 演算対象となる他のNumericオブジェクト
戻り値(return)
Array
Numericクラスのcoerceメソッドは、自身と別の数値を共通の型に変換した要素を持つ配列を返します。