我有一个带有默认过程的哈希,我想将其编码到一个文件中,但是默认过程使我无法执行该操作。

除了编写自己的_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/

10-10 13:50
查看更多