Weakref有不同的object_id?

时间:2017-07-14 19:00:56

标签: ruby weak-references

为什么对象的弱参数与对象本身具有不同的object_id?

主要

obj = {}
weakobj = WeakRef.new(obj)
puts weakobj.object_id
puts obj.object_id

输出

22206940
22207020

为什么这两个数字不同?

2 个答案:

答案 0 :(得分:0)

objweakobj都是对象。它们不是同一个对象。并且两个不同的对象无法共享ID

答案 1 :(得分:0)

因为它们都是不同的对象。 检查来自objweakobj等控制台的obj.classweakobj.class的课程。你会看到差异。