【Ruby3.x】Hash::transform_values()メソッドの使い方
transform_valuesメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
transform_valuesメソッドは、呼び出し元のHashオブジェクトの各キーに対応する値に対し、指定されたブロックを適用し、その結果で構成される新しいHashオブジェクトを生成して返すメソッドです。このメソッドは、元のHashオブジェクト自体を一切変更しない、非破壊的な操作を行います。
このメソッドの主な用途は、Hash内のキーはそのままに、値だけを対象として一律の変換処理を行いたい場合です。例えば、数値のHashのすべての値を2倍にしたり、文字列のHashのすべての値を大文字に変換したりといった、共通の加工が必要なシーンで非常に便利です。
使用する際には、transform_valuesメソッドの後にブロックを渡します。このブロックは、Hashの各要素のキーと値を受け取りますが、通常は値のみを利用して変換処理を記述します。ブロックの実行結果が、新しいHashの対応するキーの値となります。
このメソッドが返すのは常に新しいHashオブジェクトであるため、元のデータ構造を安全に保ちながら、変換後の結果を得ることができます。もし元のHashオブジェクト自体を直接変更したい場合は、破壊的メソッドであるtransform_values!を使用しますが、transform_valuesは元のデータを保護しつつ変換結果を利用したい場合に適しており、プログラムの安全性と予測可能性を高めるために推奨されます。
構文(syntax)
1hash = { apple: 100, banana: 150, orange: 120 } 2new_hash = hash.transform_values { |price| price * 1.10 } 3# new_hash は { apple: 110.0, banana: 165.0, orange: 132.0 } となる
引数(parameters)
引数なし
引数はありません
戻り値(return)
Hash
指定されたブロックを適用した結果が新しいHashオブジェクトとして返されます。元のHashオブジェクトは変更されません。