2010-07-22 4 views
0

J'essaye actuellement de créer un moteur pour une nouvelle application.Ruby - Comment reproduire le comportement des pointeurs/références?

Le design est assez complexe et j'ai vraiment besoin d'un moyen de créer une référence ou un pointeur ou n'importe quel moyen de modifier et d'accéder à distance aux données. Les données doivent être conservées au même endroit et ne doivent pas être dupliquées.

Existe-t-il un moyen d'obtenir un objet par référence? Par exemple puis-je obtenir l'instance d'une classe avec son object_id?

Merci pour votre aide;)

Répondre

1

Les éléments suivants doivent montrer comment obtenir une référence à un objet et de-référence, il:

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

vous pouvez consulter la documentation pour Object et ObjectSpace.

+0

Cela semble tout simplement génial: D Je suis en train de tester :) –

+0

Comment ça va? –

0

Je ne sais pas exactement ce que vous voulez atteindre. Ruby utilise déjà des références pour tous les objets personnalisés. Vous pouvez regarder la bibliothèque 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

Cela pourrait être ce que je cherche, je vais essayer :) merci! –

Questions connexes