为什么对象的弱引用与对象本身具有不同的object_id?
主要
obj = {}
weakobj = WeakRef.new(obj)
puts weakobj.object_id
puts obj.object_id
输出
22206940
22207020
为什么这两个数字不同?
因为它们都是不同的对象。 从控制台(如obj.class
和weakobj.class
(检查obj
和weakobj
的类。你会看到差异。
>obj
和weakobj
都是对象。 它们不是同一个对象。 并且两个不同的对象不能共享一个 ID