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

Ale*_*xey 3 ruby

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

m = Module.new
module m
end
Run Code Online (Sandbox Code Playgroud)

"SyntaxError:(eval):2:类/模块名称必须为CONSTANT".

Gui*_*nal 6

是.但你必须使用常数.

M = Module.new
module M
end
Run Code Online (Sandbox Code Playgroud)

你也可以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
Run Code Online (Sandbox Code Playgroud)