首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Marshal ruby hash with default proc -删除默认proc?

Marshal ruby hash with default proc -删除默认proc?
EN

Stack Overflow用户
提问于 2010-09-29 11:59:54
回答 2查看 2.2K关注 0票数 12

我有一个带有默认proc的Hash,我想将它封送到一个文件中,但默认proc阻止我这样做。

与其编写我自己的_dump_load方法,还有没有可能删除默认的proc呢?在我编组的时候,我再也不需要默认的proc了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-29 12:15:43

只需重置默认设置:

代码语言:javascript
运行
复制
h.default = nil

更明确地说:

代码语言:javascript
运行
复制
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'的红宝石。

票数 15
EN

Stack Overflow用户

发布于 2012-01-08 10:09:16

如果您想要一个没有默认设置的副本,最简单的方法是-

代码语言:javascript
运行
复制
Hash[hash_with_defaults]
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3818623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档