【Ruby3.x】Array::flatten!()メソッドの使い方
flatten!メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
flatten!メソッドは、Arrayクラスのインスタンスに対して呼び出され、多次元配列を一次元配列に変換するメソッドです。このメソッドは、配列内にネストされた(入れ子になった)配列要素を抽出し、それらを元の配列の直接の要素として配置し直すことで、配列をより「平坦」な構造にします。
メソッド名の末尾にある「!」は、このメソッドがレシーバーである元の配列自身を直接変更する(破壊的な)操作であることを示しています。元の配列を変更せずに新しい平坦な配列を生成したい場合は、flattenメソッドを使用してください。
オプションで整数値の引数 level を指定することができます。この level 引数は、配列をどこまでの深さまで平坦化するかを決定します。例えば、level を 1 と指定した場合、最上位のネストのみが解消され、その下のネストされた配列はそのまま残ります。level を省略した場合や、nil を指定した場合は、配列内のすべてのネストが完全に解消され、完全に一次元の配列になります。
もし配列がすでに平坦であるか、または指定された level によって何も変更が起こらなかった場合、このメソッドは nil を返します。そうでなければ、変更された元の配列自身を返します。このメソッドは、複数のリストやコレクションが入れ子になっているデータを、一貫した単一のリストとして扱いたい場合に非常に便利です。
構文(syntax)
1arr = [1, [2, 3], [4, [5, 6]]] 2arr.flatten!
引数(parameters)
level = nil
- level = nil: 配列を平坦化する深さを指定します。nil(デフォルト)の場合は、ネストが完全に解消されるまで平坦化します。
戻り値(return)
Array | nil
配列のネストを解消して、指定したレベルまで平坦化し、その結果の配列を返します。変更が加えられた場合はその配列を、変更がなかった場合はnilを返します。