是否可以在Ruby中重新打开匿名模块?以下不起作用:
m = Module.new
module m
end
“SyntaxError:(eval):2:类/模块名称必须为CONSTANT”。
答案 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