在Ruby中,如果我有一個對象實例的ID作爲字符串,例如 "#<Meeting:0x4531860>"
,我可以通過此ID獲取實例的自己嗎?Ruby:我可以通過它的ID獲取實例嗎?
# what I want
meeting = SOME_MAGIC_HERE "#<Meeting:0x4531860>"
# and then I can handle the meeting itself
meeting.name # => 'BLABLABLA'
在Ruby中,如果我有一個對象實例的ID作爲字符串,例如 "#<Meeting:0x4531860>"
,我可以通過此ID獲取實例的自己嗎?Ruby:我可以通過它的ID獲取實例嗎?
# what I want
meeting = SOME_MAGIC_HERE "#<Meeting:0x4531860>"
# and then I can handle the meeting itself
meeting.name # => 'BLABLABLA'
meeting = ObjectSpace._id2ref(0x4531860 >> 1)
多數民衆贊成超級真棒。只有一件事'0x4531860'看起來像對象的內存地址?如果是的話,它會在一段時間後失效(一旦使用了內存空間)? –
@sahildhankhar這不是內存地址。是的,如果對象被垃圾收集,那麼它將是無效的。在那種情況下,沒有辦法參考那個對象,因爲它會消失。 – sawa
除非你認爲從對象ID顯示在檢查該ID的轉換,是不是重複是微不足道的。 – sawa