【Ruby3.x】Numeric::clone()メソッドの使い方
cloneメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
cloneメソッドは、RubyのNumericクラスに属するインスタンスに対して実行されるメソッドです。Numericクラスには、整数(Integer)や浮動小数点数(Float)といった数値オブジェクトが含まれます。
Rubyにおいて、一般的なcloneメソッドは、オブジェクトの複製を作成し、元のオブジェクトとは独立した新しいオブジェクトを生成する役割を持ちます。しかし、Numericクラスのオブジェクトは「不変」(immutable)という特別な性質を持っています。これは、一度作成された数値オブジェクトの値は、後から変更されることがない、という意味です。
この不変性のため、Numericオブジェクトに対してcloneメソッドを呼び出しても、他の一般的なオブジェクトのように新しい独立した数値オブジェクトが作成されることはありません。Numeric#cloneは、常に呼び出し元の数値オブジェクト自身を返します。例えば、整数1に対して1.cloneを実行した場合、返されるのは新しい1のオブジェクトではなく、元の1のオブジェクトそのものになります。
数値は、その値自体がアイデンティティであり、内部的な状態を持たないため、複製を作成しても元の数値と全く区別がつきません。したがって、Rubyでは、数値オブジェクトの独立したコピーを目的としてcloneメソッドを使用しても、その目的は達成されない点にご理解ください。
構文(syntax)
11.clone
引数(parameters)
引数なし
引数はありません
戻り値(return)
self
Numericクラスのcloneメソッドは、レシーバー(メソッドを呼び出したオブジェクト自身)のコピーを返します。これにより、元のオブジェクトを変更せずに、その複製に対して操作を行うことができます。