3-2-3 ハッシュについて理解を深める

ハッシュに要素を追加する別の方法

ハッシュに要素を追加するには、前ページ「3-2-2 ハッシュの色々な書き方とデータの追加・削除をしてみよう」で確認したように、<<演算子を使います。

また、ハッシュに要素を追加するには別の方法もあります。ハッシュ(Hash)クラスのstoreメソッドを使う方法です。

storeメソッドは第一引数にキー名を、第二引数にを指定して利用します。

先ほどの体験でchild変数に格納されたハッシュに:age => 7を追加した例では、child.store :age, 7と記述することもできます。

ハッシュのdeleteメソッド

ハッシュの要素を削除するにはdeleteメソッドを使います。

前ページ「3-2-2 ハッシュの色々な書き方とデータの追加・削除をしてみよう」で確認した通り、deleteメソッドの引数にキー名を指定することで該当のキーと値のペアを削除することができます。

配列のdeleteメソッドとほぼ同等の機能ですが、ハッシュのdeleteメソッドはハッシュクラスが提供するものであり、配列クラスが提供するdeleteメソッドとは区別されます。

存在しないキー名を指定した場合

ハッシュが格納された変数に存在しないキー名を与えた場合はどうなるでしょうか?

この場合は当然値も未定義なので、Rubyでは「無」を意味するnilが返却されます。

以下は前ページ「3-2-2 ハッシュの色々な書き方とデータの追加・削除をしてみよう」でchild変数から:age => 7の要素を削除した後にchild[:age]を表示してみた様子です。

irb(main):002:0> child[:age]
=> nil
irb(main):003:0>

irb上でnilが返却されていることが確認できます。