default_proc=(pr)
[permalink][rdoc][edit]-
ハッシュのデフォルト値を返す Proc オブジェクトを変更します。
以前のデフォルトは値(Hash#default)の場合も Proc の場合(Hash#default_proc)でも上書きされます。
引数には to_proc で Proc オブジェクトに変換できるオブジェクトも受け付けます。
nil を指定した場合は現在の Hash#default_proc をクリアします。
- [PARAM] pr:
- デフォルト値を返す手続きオブジェクト
h = {} h.default_proc = proc do |hash, key| hash[key] = case when (key % 15).zero? "FizzBuzz" when (key % 5).zero? "Buzz" when (key % 3).zero? "Fizz" else key end end p h[1] # => 1 p h[2] # => 2 p h[3] # => "Fizz" p h[5] # => "Buzz" p h[15] # => "FizzBuzz" h.default_proc = nil p h[16] # => nil # default_proc が nil になったので `16=>16 が追加されていない` p h # => {1=>1, 2=>2, 3=>"Fizz", 5=>"Buzz", 15=>"FizzBuzz"}
[SEE_ALSO] Hash#default_proc, Hash#default