假设我可以构造一个与现有类匹配的字符串,我该如何调用它?
例如,我有几个类:
我想通过构造一个与其名称匹配的字符串来动态调用它们。如果他们都有方法“方法”,我该怎么办?
(1..3).each do |n|
("MyClass"+n).methods
end
答案 0 :(得分:17)
constantize
符合要求。您可以阅读更多相关信息here。在你的情况下,它将是这样的:
(1..3).each do |n|
"MyClass#{n}".constantize.methods
end
答案 1 :(得分:-3)
你也可以 -
(1..3).each {|n| eval "MyClass#{n}.methods"}