【Ruby3.x】Hash::transform_keys()メソッドの使い方
transform_keysメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
transform_keysメソッドは、RubyのHashオブジェクトが持つキーを変換するために使用されるメソッドです。このメソッドは、呼び出し元のハッシュの各キーに対して、指定されたブロックを適用し、そのブロックの戻り値を新しいキーとして持つ新たなハッシュを生成して返します。
具体的には、transform_keysメソッドにブロックを渡すと、ハッシュのキーが一つずつブロックに引数として渡されます。ブロック内では、そのキーに対して何らかの変換処理(例えば、文字列の大文字化、シンボルへの変換など)を実行し、変換後の値を戻り値として返します。このブロックの戻り値が、新しく生成されるハッシュのキーとして採用されます。
重要な点として、transform_keysメソッドは非破壊的です。つまり、呼び出し元のハッシュ自体は一切変更されず、キーが変換された新しいハッシュオブジェクトが生成されて返されます。元のデータを保持したまま、キーの形式を柔軟に変更したい場合に非常に有用です。もし、元のハッシュオブジェクトのキーを直接変更したい場合には、破壊的メソッドであるtransform_keys!メソッドを使用することができます。
このメソッドは、特に異なる形式のキーを持つデータを統一したり、APIからのレスポンスデータをアプリケーションの内部形式に合わせたりする場面で、データの整形処理に役立ちます。
構文(syntax)
1original_hash = { "name" => "Alice", "age" => 30 } 2transformed_hash = original_hash.transform_keys { |key| key.to_sym }
引数(parameters)
map
- map: 新しいキーと値のペアを生成するためのブロック
戻り値(return)
Hash or Enumerator
Hashの各キーに対してブロックで指定された変換を適用した新しいHashを返します。ブロックが省略された場合は、変換処理を行うEnumeratorを返します。