Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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オブジェクトは変更されません。

関連コンテンツ

関連プログラミング言語