Ruby:常量的值

时间:2011-07-29 22:03:26

标签: ruby

我正在使用

MyModule.constants.each do |c|
  #my loop
end

如何获取每个常量的VALUE而不是其名称?

3 个答案:

答案 0 :(得分:8)

您正在寻找Module#const_get

irb(main):014:0> MyModule.constants.each do |c|
irb(main):015:1*   puts(c.to_s + "  " + MyModule.const_get(c).to_s)
irb(main):016:1> end
MY_CONST  5
=> [:MY_CONST]

答案 1 :(得分:4)

请参阅Module.const_get

module MyModule
  FOO = 42
  BAR = 17
end
MyModule.constants.each do |c|
  p [ c, MyModule.const_get(c) ]
end
#=> [:FOO, 42]
#=> [:BAR, 17]

答案 2 :(得分:0)

map = {}
MyModule.constants.each do |name|
  map[name] = MyModule.const_get(name)
end