Ruby の hash で存在していない key を参照しようとした場合の挙動を制御する
Ruby
Published: 2019-04-10

やったこと

Ruby の hash で存在していない key を参照しようとした場合の挙動を制御する方法について調べました。

確認環境

$ ruby -v
ruby 2.2.7p470 (2017-03-28 revision 58194) [x86_64-darwin16]

調査

test.rb

h = {key: 'value'}

p h[:key]
p h[:key2]

h2 = Hash.new do |k, v|
    # ここで例外を発生させるなどする
    p "#{v} is nothing"
end
h2[:key] = 'value'


p h2[:key]
h2[:key2]

実行結果

$ ruby test.rb
"value"
nil
"value"
"key2 is nothing"