12

为什么系统对象如零,真或假在Ruby中有一个固定的对象ID。此外,我尝试打印出数字的对象ID,它们是相同的,并遵循奇数序列模式。对此有何解释?修复了系统对象和Ruby中小整数的对象ID

[nil,true,false].each { |o| print o.object_id, ' '} 
4 2 0 => [nil, true, 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 
+3

可能重复的[Ruby - 如何object_id分配工作?](http://stackoverflow.com/questions/3430280/ruby-how-does-object-id-assignment-work) – sepp2k 2010-10-17 10:56:08

回答