我有一个带有默认过程的哈希,我想将其编码到一个文件中,但是默认过程使我无法执行该操作。
除了编写自己的_dump
和_load
方法外,还可以改为删除默认的proc吗?在进行编码的时候,我再也不需要默认的proc了。
最佳答案
只需重置默认值即可:
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
在Ruby 2.0中,如果愿意,您还可以can编写
h.default_proc = nil
。适用于所有带有require 'backports/2.0.0/hash/default_proc'
的 ruby 。关于ruby - 使用默认proc编码(marshal) ruby 哈希-删除默认proc?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3818623/