首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自`ObjectSpace._id2ref`的错误

来自`ObjectSpace._id2ref`的错误
EN

Stack Overflow用户
提问于 2012-11-22 16:28:50
回答 1查看 391关注 0票数 2

ObjectSpace._id2ref返回的以下两种错误之间有什么区别?

代码语言:javascript
复制
0x... is recycled object (RangeError)

0x... is not id value (RangeError)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-22 20:24:35

not id value意味着从来没有具有该id的对象。

recycled object意味着曾经有一个具有该id的对象,但是它已经被垃圾回收了。

Ruby 1.9.3/Ubuntu上的演示:

代码语言:javascript
复制
x = Object.new
id = x.object_id

puts "0x%x" % id
# => 0x4aef5e8

puts ObjectSpace._id2ref id
# => #<Object:0x95debd0>

x = nil

puts ObjectSpace._id2ref id
# => #<Object:0x95debd0>

GC.start

puts ObjectSpace._id2ref id
# => 0x4aef5e8 is recycled object (RangeError)

注意,Object#to_s中的数字不是object_id --根据docs的说法,它是“对象id的编码”。

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

https://stackoverflow.com/questions/13508536

复制
相关文章

相似问题

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