アウトプットの部屋

エンジニアになるためのアウトプット

rubyのハッシュについて②(要素の変更)

ハッシュの要素の変更をいくつかピックアップします。

delete,reject!,delete_if,clearメソッドなどは基本的に配列の時と同じ振る舞いをします。

shiftメソッドは、配列の時は先頭の要素を取り除きましたが、ハッシュの場合は、ランダムに組み合わせを1つ取り除きます。

①mergeメソッドでハッシュを統合する

h = {"a"=>1,"b"=>2}
g = {"c"=>3,"d"=>4}
h.merge(g)
=> {"a"=>1,"b"=>2, "c"=>3,"d"=>4}

#キーが重複した場合、引数の値の方が更新され値として返る

同じ振る舞いでmerge!,updateメソッドがあり、どちらも破壊的メソッド。レシーバの値が更新される。

②invertメソッドでキーと値を入れ替える

h = {"a"=>1,"b"=>2}
h.invert
=>{1=>"a",2=>"b"}

#入れ替えの結果、キーが重複したら片方は消滅する

配列で要素の順番を逆にするのは、reverse,reverse!メソッドなので注意です。