为什么1.object_id在Ruby 2.5.1中总是返回3?

时间:2018-09-07 10:01:07

标签: ruby

好吧,我可以迭代3到101,并使用以下选项仅选择赔率:

(1..50).to_a.map(&:object_id)

(1..50).map(&:object_id)

甚至是这样:

(1..50).to_a.each do |c| p c.object_id end

执行此操作的方法不断...

我想到的一个问题是,“ A”是否可以具有Integer类的任何对象ID,并且看起来很随机,那么为什么数字有固定的?

1 个答案:

答案 0 :(得分:1)

对象ID由对象value加上一些附加信息计算得出。通过该计算,您可以得出在示例中看到的值。

有关详细信息,请阅读以下SO帖子: