From: "K.Kosako" Date: 2002-08-09T21:11:00+09:00 Subject: [ruby-dev:17967] Re: Hash has default block? Tanaka Akiraさんのから > ふと、ひさしぶりに(一年ぶりくらい?) AMarshal に手を入れていて気になっ > たのですが、Hash が default block を持っているかどうかを判定する方法は > ないものでしょうか? .... > とゆーものなんですが、これはあまりにあんまりです。もちっとましな方法は > ないものでしょうか? 他の方法は思いつきませんでした。 Marshal.dumpが、defaultかdefault blockなのかチェックしていないので、 今は判定できないのではないでしょうか? class Hash def has_default_block? begin Marshal.dump(dup.clear) rescue TypeError return true end return false end end q = lambda { q } h = Hash.new(q) p h.has_default_block? # => true -- 小迫@ソフネック 渋谷区恵比寿1-15-1