问题
I want to get the values of all the constants defined in a module:
module Letters
A = 'apple'.freeze
B = 'boy'.freeze
end
constants
gave me the name of the constants:
Letters.constants(false)
#=> [:A, :B]
How do I get an array of their values, i.e. ["apple", "boy"]
?
回答1:
In order to do this use map
Letters.constants(false).map &Letters.method(:const_get)
this will return ["a","b"]
Second way :
Letters.constants(false).map { |c| Letters.const_get c }
Thanks @mudasobwa and Sagar Pandya for their answer.
来源:https://stackoverflow.com/questions/48386101/get-value-of-all-constants-defined-in-a-module