なかだです。

At Sat, 16 Dec 2000 23:11:47 +0900,
gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:
> 個人的にはHashのdefaultが設定されている場合は、Hash#[] で参
> 照したキーに対して代入するように変更して欲しいと思います。
> それと何度か話題に上がっている「Hash.newにブロックを与えたら、
> defaultはそれを評価して返す」というのも採用されないかなぁ。

  うーん。こういう感じ? ただ、参照しただけで変更されちゃうって
のもなんか…。

class DefaultingHash < Hash
  def initialize
    default = proc
  end
  def default(&block)
    if block
      default = block
    else
      super
    end
  end
  def [](key)
    fetch(key) {store(key, default.call(key))}
  end
end

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦