hash - 使用默认过程封送 ruby 哈希删除默认进程?

  显示原文与译文双语对照的内容
0 0

我有个Hash默认值proc我想Marshal到文件中,但默认的过程使我无法这么做。

而不是编写自己 _dump_load方法,有可能取代默认删除proc来代替? 轴交点我Marshalling打死我也不需要再次默认过程。

时间: 原作者:

0 0

仅重置默认:

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,你也可以编写 h.default_proc = nil如果愿意, 适用于所有Rubies与 require 'backports/2.0.0/hash/default_proc'.

0 0

没有默认情况下,你需要有一个副本中,最简单的方法

Hash[hash_with_defaults]
...