Ruby 同じキーを持つハッシュ同士を演算する
Rubyで、mergeを使用して、同じキーを持つハッシュ同士を演算するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
merge使い方
merageを使用すれば、ハッシュ同士を結合することが可能ですが同じキーを保つ場合は、以下の上書きされてしまいます。
h1 = {'key1' => 1, 'key2' => 2}
h2 = {'key1' => 3, 'key2' => 4}
p h1.merge(h2)
# {"key1"=>3, "key2"=>4}
これを、2つのkey1が持つ「1」と「3」を足した「4」をkey1とする場合のサンプルコードを記述してます。
h1 = {'key1' => 1, 'key2' => 2}
h2 = {'key1' => 3, 'key2' => 4}
p h1.merge(h2){|k, v1, v2| v1 + v2}
# {"key1"=>4, "key2"=>6}
p h1
# {"key1"=>1, "key2"=>2}
merge!にすると、元の値も変更されます。
h1 = {'key1' => 1, 'key2' => 2}
h2 = {'key1' => 3, 'key2' => 4}
p h1.merge!(h2){|k, v1, v2| v1 + v2}
# {"key1"=>4, "key2"=>6}
p h1
# {"key1"=>4, "key2"=>6}
文字列の結合も可能です。
h1 = {'key1' => '1', 'key2' => '2'}
h2 = {'key1' => '3', 'key2' => '4'}
p h1.merge(h2){|k, v1, v2| v1 + v2}
# {"key1"=>"13", "key2"=>"24"}
-
前の記事
Ubuntu20.10に昔風のターミナルエディタ「Cool Retro Term」をインストールして使用する 2021.03.26
-
次の記事
VSCODE 全角空白を表示する 2021.03.26
コメントを書く