2011-07-15 31 views
14

Tôi chỉ bắt đầu sử dụng các hằng số trong Ruby.Ruby: Lặp lại các hằng số

Tôi có

module Constants 
    C1 = "foo" 
    C2 = "bar" 
end 

Tôi muốn làm

Constants.each do |c| 
    #do something with each one 
end 

nhưng nó nói

undefined method ‘each’ for Constants::module 

....

Có cách nào tốt đẹp của iterating thông qua một danh sách các hằng số?

+0

Liên kết hữu ích cho câu hỏi này: http://stackoverflow.com/questions/2309255/how-do-i-get-constants-defined-by-rubys-module-class-via-reflection. –

Trả lời

35
module Constants 
    C1 = "foo" 
    C2 = "bar" 
end 

Constants.constants.each do |c| 
    puts "#{c}: #{Constants.const_get(c)}" 
end 
#=> "C1: foo" 
#=> "C2: bar" 
+0

Typo Constant => Hằng số –

+0

@Ray Toal, yeap, thanks – fl00r

Các vấn đề liên quan