1

当您想使用模块A作为命名空间来处理整个文件时,您可以输入:

include A

接下来的任何内容都将在A. 有没有办法用 class 做类似的事情B

放:

class B

在文件的开头,在文件的所有内容之后,以

end

看起来不优雅,并且是错误的原因。我正在寻找一种不需要像end.

编辑我上面的描述include A似乎是错误的。即使这样做了,环境仍然是主要对象。我想要的是让它成为可能,如果我只是这样做

def foo; ... end

没有任何显式嵌套,那么它将被定义为相应情况A的方法。B

4

1 回答 1

0

据我所知,没有这样的指令。

尽管如果您的文件将被另一个脚本“执行”,您可以这样做:

文件file.rb包含

puts self

文件main.rb包含

class B
    eval(File.read('file.rb'))
end

如果你想让它更透明,你甚至可以提供你自己的 require 实现,它隐藏了所有这些魔力。

于 2012-12-05T23:53:51.687 回答