【Ruby3.x】Integer::times()メソッドの使い方
timesメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
timesメソッドは、Integerクラスに属し、レシーバーである整数値が示す回数だけ、関連付けられたブロック内の処理を繰り返し実行するメソッドです。
このメソッドの主な役割は、特定の処理を所定の回数だけ繰り返したい場合に、シンプルで読みやすいコードを提供する点にあります。例えば、「5.times do ... end」と記述することで、doからendまでの間の処理が5回実行されます。これは、プログラム内で同じ操作を複数回行いたい場合や、一定の回数だけ何かを生成したり処理したりする場合に非常に便利です。
ブロックが与えられた場合、timesメソッドは繰り返しごとに、0から始まりレシーバーの値の直前までの整数を順にブロック引数として渡します。例えば、「5.times do |i| ... end」の場合、変数iには0、1、2、3、4が順に代入され、それぞれの繰り返しで利用できます。これにより、繰り返し処理の中で現在の実行回数やインデックスに応じた異なる操作を行うことが可能になります。
この機能は、配列の要素を生成したり、特定の回数だけログを出力したり、ファイルにデータを書き込んだりするなど、プログラム内で繰り返しを伴う様々なタスクにおいて非常に役立ちます。従来のfor文やwhile文を用いたループ処理と比べ、コードが簡潔になり、意図が明確に伝わりやすくなるのが特徴です。
繰り返しが完了すると、timesメソッドはレシーバーである元の整数値自身を返します。このメソッドは、システム開発における繰り返し処理の基本的な手法の一つとして、多くの場面で活用されています。
構文(syntax)
13.times do |i| 2 puts "Current iteration: #{i}" 3end
引数(parameters)
引数なし
引数はありません
戻り値(return)
Integer (ブロックを伴う場合), Enumerator (ブロックを伴わない場合)
Integer#times メソッドは、指定された回数だけブロックを実行します。ブロックを伴って呼び出された場合は、ブロックの実行結果ではなく self(メソッドを呼び出した整数自身)を返します。ブロックを伴わずに呼び出された場合は、指定された回数だけ繰り返すための Enumerator オブジェクトを返します。