Ruby - 如何重现指针/引用行为?

时间:2010-07-22 16:00:16

标签: ruby pointers reference instance

我目前正在尝试为新应用程序创建引擎。

设计非常复杂,我真的需要一种方法来创建引用或指针,或者用什么方式来远程修改和访问数据。数据必须保存在一个地方,不得重复。

有没有办法通过引用获取对象? 例如,我可以使用他的object_id来获取类的实例吗?

感谢您的帮助;)

2 个答案:

答案 0 :(得分:1)

以下内容应演示如何获取对象的引用并取消引用它:

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

您可以查看ObjectObjectSpace的文档。

答案 1 :(得分: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