2013-08-23 133 views
1

在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' 
+0

除非你認爲從對象ID顯示在檢查該ID的轉換,是不是重複是微不足道的。 – sawa

回答

2
meeting = ObjectSpace._id2ref(0x4531860 >> 1) 
+0

多數民衆贊成超級真棒。只有一件事'0x4531860'看起來像對象的內存地址?如果是的話,它會在一段時間後失效(一旦使用了內存空間)? –

+0

@sahildhankhar這不是內存地址。是的,如果對象被垃圾收集,那麼它將是無效的。在那種情況下,沒有辦法參考那個對象,因爲它會消失。 – sawa

相關問題