【Ruby3.x】Array::rotate!()メソッドの使い方
rotate!メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
rotate!メソッドは、RubyのArrayクラスに属し、配列の要素を指定した数だけ循環的に移動させる(回転させる)メソッドです。このメソッドは、配列の末尾の要素を先頭に移動させたり、逆に先頭の要素を末尾に移動させたりすることで、配列の並び順を直接変更します。
メソッド名の末尾に!が付いていることからもわかるように、rotate!は呼び出し元の配列オブジェクト自身を直接変更する「破壊的メソッド」です。そのため、一度このメソッドを実行すると、元の配列の順序は変更後のものに置き換わり、元の配列の状態は失われますので、使用する際は注意が必要です。元の配列を変更せずに回転させた新しい配列を得たい場合は、非破壊的なrotateメソッド(!なし)を使用してください。
移動量(回転量)は引数countで指定します。countが正の数の場合、配列の末尾から先頭へ要素が移動し、配列全体が右に回転します。例えばcountが1の場合、配列の最後の要素が最初の位置に移動します。一方、countが負の数の場合、配列の先頭から末尾へ要素が移動し、配列全体が左に回転します。countを省略した場合、デフォルトで1が適用され、配列は1つ右に回転します。このメソッドは、要素が回転し変更された配列自身を戻り値として返します。
構文(syntax)
1ary = [1, 2, 3, 4, 5] 2ary.rotate!(2)
引数(parameters)
count = 1
- count = 1: 配列の要素を回転させる回数を指定する整数。デフォルトは1回。
戻り値(return)
Array
Arrayクラスのrotate!メソッドは、レシーバである配列自身を回転させた結果を返します。