我有一个带有默认proc的Hash,我想将它封送到一个文件中,但默认proc阻止我这样做。
与其编写我自己的_dump和_load方法,还有没有可能删除默认的proc呢?在我编组的时候,我再也不需要默认的proc了。
发布于 2010-09-29 12:15:43
只需重置默认设置:
h.default = nil更明确地说:
def dumpable_hash(h)
return h unless h.default_proc
copy = h.clone
copy.default = nil # clear the default_proc
copy
end在Ruby2.0中,如果你愿意,你也可以写can h.default_proc = nil。适用于所有带有require 'backports/2.0.0/hash/default_proc'的红宝石。
发布于 2012-01-08 10:09:16
如果您想要一个没有默认设置的副本,最简单的方法是-
Hash[hash_with_defaults]https://stackoverflow.com/questions/3818623
复制相似问题