2010-07-22 3 views
0

В настоящее время я пытаюсь создать движок для нового приложения.Ruby - Как воспроизвести поведение указателей/ссылок?

Дизайн довольно сложный, и я действительно нуждаюсь в способе создания ссылки или указателя или того, что когда-либо позволяло удаленно изменять и получать доступ к данным. Данные должны храниться в одном месте и не должны дублироваться.

Есть ли способ получить объект по ссылке? Например, можно ли получить экземпляр класса с его object_id?

Спасибо за помощь;)

ответ

1

Ниже следует продемонстрировать, как получить ссылку на объект и де-ссылки на него:

s = "I am a string"     #=> "I am a string" 
    r = ObjectSpace._id2ref(s.object_id) #=> "I am a string" 
    r == s         #=> true 

Вы можете просмотреть документацию для Object и ObjectSpace.

+0

Это просто замечательно: D Я тестирую :) –

+0

как дела? –

0

Не уверен, что именно то, что вы хотите достичь. Ruby использует ссылки для всех пользовательских объектов.

Возможно, вы захотите ознакомиться с библиотекой delegate.

require 'delegate' 

obj = "foo" 
ptr = SimpleDelegator.new(obj) 
ptr.upcase # => "FOO" 
other_obj = "bar" 
ptr.__setobj__(other_obj) # make ptr point to another object 
+0

Возможно, это то, что я ищу, я попробую :) спасибо! –

Смежные вопросы