加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

修复Ruby中的系统对象和小整数的对象标识

发布时间:2020-12-16 19:26:21 所属栏目:百科 来源:网络整理
导读:为什么像nil,true或false这样的系统对象在 Ruby中有一个固定的对象id.我也尝试打印数字的对象id,它们是相同的,并遵循奇数序列模式.有什么解释吗? [nil,true,false].each { |o| print o.object_id,' '}4 2 0 = [nil,false] (0..50).each { |i| print i.objec
为什么像nil,true或false这样的系统对象在 Ruby中有一个固定的对象id.我也尝试打印数字的对象id,它们是相同的,并遵循奇数序列模式.有什么解释吗?
[nil,true,false].each { |o| print o.object_id,' '}
4 2 0 => [nil,false]

>> (0..50).each { |i| print i.object_id,' ' }
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 => 0..50

解决方法

以下两个链接解释了Ruby对象ID的概念:

http://www.oreillynet.com/ruby/blog/2006/01/the_ruby_value_1.html
http://www.oreillynet.com/ruby/blog/2006/02/ruby_values_and_object_ids.html

对象ID是从对象值加上一些附加信息计算的.从该计算中可以得出您在示例中看到的值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读