【Ruby3.x】Hash::flatten()メソッドの使い方
flattenメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
flattenメソッドは、RubyのHashクラスに属し、ハッシュオブジェクトを1次元の配列に変換するメソッドです。ハッシュは、名前(キー)とそれに対応する情報(値)をセットで管理する、辞書のようなデータ構造です。このflattenメソッドは、そのようなキーと値のペアで構成されたハッシュを、単一の平坦な配列に変換することを目的としています。
具体的には、ハッシュ内の各キーとそれに対応する値を、キー、値、次のキー、次の値という順序で、連続した要素として新しい配列の中に並べます。例えば、{ name: "Alice", age: 30 }というハッシュがある場合、flattenメソッドを適用すると、[:name, "Alice", :age, 30]という配列が生成されます。この変換によって、ハッシュの構造が失われ、すべての要素が平等に1次元の配列の要素として扱われるようになります。
このメソッドは元のハッシュオブジェクトを直接変更する(破壊する)ことはなく、常に変換された新しい配列を返します。そのため、元のハッシュデータを安全に保ちながら、必要な場面で配列形式のデータとして利用することができます。例えば、ハッシュ内のすべての要素を順次処理したい場合や、キーと値を交互に並べた形で外部システムにデータを渡す必要がある場合などに非常に役立ちます。なお、このflattenメソッドは引数を取らず、配列のflattenメソッドとは異なる振る舞いをしますので、他のデータ型を扱うflattenメソッドとの混同にはご注意ください。
構文(syntax)
1hash = { "key1" => "value1", "key2" => "value2" } 2p hash.flatten
引数(parameters)
level
- level: 展開するネストの深さを指定する整数。省略した場合、すべてのネストが展開されます。
戻り値(return)
Array
Hashオブジェクトの要素(キーと値のペア)を、ネストされた配列構造を解除して一次元の配列に変換したものを返します。