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

前端之家收集整理的这篇文章主要介绍了修复Ruby中的系统对象和小整数的对象标识前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么像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是从对象值加上一些附加信息计算的.从该计算中可以得出您在示例中看到的值.

猜你在找的Ruby相关文章