gpt4 book ai didi

ruby - 使用类作为整个文件的命名空间

转载 作者:行者123 更新时间:2023-12-04 16:58:06 24 4
gpt4 key购买 nike

当您想使用模块时 A作为在整个文件中工作的命名空间,您可以只放置:

include A

后面的内容都在 A 之内.有没有办法对类 B 做类似的事情? ?

推杆:
class B

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

看起来不优雅,是一个错误的原因。我正在寻找一种不需要像 end 这样的关闭命令的方法.

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

没有任何显式嵌套,那么这将被定义为 A 的方法或 B针对各自的情况。

最佳答案

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

虽然如果您的文件要由另一个脚本“执行”,您可以做的是:

文件 file.rb包含

puts self

文件 main.rb包含
class B
eval(File.read('file.rb'))
end

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

关于ruby - 使用类作为整个文件的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com