我想在我的脚本中定义常量,假设我有两个这样的文件:
script_two.rb
TWO = 'this is 2'
script_one.rb
require_relative 'script_two'
ONE = 'this is 1'
# Check for constants
我想知道如何获取常量数组[ONE, TWO]
(顺序并不重要)。
我知道Object.constants
给出了一组当前常量,但包括许多其他常量,如TRUE
,NIL
等。
我想在开始时保持结果,然后在需要之后再次调用它,这样我才能有所作为。但它有点难看,还有另一种方式吗?
答案 0 :(得分:3)
这很棘手,因为当你运行脚本时,没有一个类将你的常量放在main:Object上。因此,您需要能够知道在脚本执行之前定义了哪些常量。像这样的东西会起作用:
#script_one.rb
obj_cons = Object.constants
require_relative 'script_two'
ONE = 'this is 1'
puts self.class.constants - obj_cons
生成数组:[TWO,ONE] - 我相信这就是你想要的。
$ ruby script_one.rb
TWO
ONE