是否可以在Ruby中重新打开匿名模块?

时间:2012-07-29 11:20:19

标签: ruby

是否可以在Ruby中重新打开匿名模块?以下不起作用:

m = Module.new
module m
end

“SyntaxError:(eval):2:类/模块名称必须为CONSTANT”。

1 个答案:

答案 0 :(得分:6)

是。但你必须使用常量。

M = Module.new
module M
end

您也可以M = m


另一种方式:

m = Module.new do
  def self.foo1
    1
  end
end

m.class_eval do
  def self.foo2
    2
  end
end

m.foo1 + m.foo2  #=> 3