首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

巡查法
EN

Stack Overflow用户
提问于 2018-12-06 03:38:49
回答 1查看 67关注 0票数 1

Marshal.dump无法转储包含单例(本征类)的类。我想看看这个方法如何决定这个单例的存在,但是我不知道如何找到这个源。我确实尝试了以下几点:

代码语言:javascript
运行
复制
dump_method = Marshal.method(:dump) #=> #<Method: Marshal.dump> 
dump_method.source_location # => nil

我还快速查看了https://github.com/ruby/ruby,但由于没有搜索功能,我不知道在哪里可以找到Marshal的源代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-06 04:58:29

检查是这里,但它是在C-和核磁共振代码是臭名昭著的不透明。

我相信一个类似的检查,但在Ruby中,应该是:

代码语言:javascript
运行
复制
obj.singleton_class.instance_methods(false).empty? &&
obj.singleton_class.instance_variables.empty?

如果这是false (也就是说,如果在单例上定义了任何内容),则不需要转储。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53644285

复制
相关文章

相似问题

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