Ruby 如何使用添加的方法创建修改对象的实例?

Ruby 如何使用添加的方法创建修改对象的实例?,ruby,metaprogramming,Ruby,Metaprogramming,我试图动态地将方法添加到类的单个实例中,然后能够实例化修改后的类的新对象 下面是我试图完成的一个草图 class A def add_new_method define_singleton_method(:new_method) { puts("hi") } end end a = A.new a.add_new_method B = a.singleton_class b = B.new 显然,上述方法是不可能的,因为您显然不能创建新的单例实例。实现同

我试图动态地将方法添加到类的单个实例中,然后能够实例化修改后的类的新对象

下面是我试图完成的一个草图

class A
  def add_new_method
     define_singleton_method(:new_method) { puts("hi") }
  end
end

a = A.new
a.add_new_method
B = a.singleton_class
b = B.new

显然,上述方法是不可能的,因为您显然不能创建新的单例实例。实现同样的目标的正确方法是什么?

您不能在Ruby中实例化单例类,但您可以编写一些代码来获得这样做的感觉

我将使用一个类方法作为下面的示例

A类
def添加新方法
定义单例方法(:新方法){puts(“hi”)}
自己
结束
自我增强
new.add_新方法
结束
结束
b=A.增强型
b、 新方法
#嗨
请参阅。搜索“实例化”。