程序中有一个字符串变量存储了类的名称,例如:Class1, Class2, Class3等。
类Class1, Class2, Class3里面都有一个常量:MyConst。
用case ... when来处理比较麻烦,也不适合扩展。
我觉得Ruby既然是解释性语言,肯定可以直接通过名称来指定类。
谢谢。
这个,最简单的方法就是用最邪恶的eval :D
ex:
[code="ruby"]
1.upto(3) do |i|
eval <<__CLAZZ__
class Class#{i}
MyConst = #{i}
end
CLAZZ
end
puts Class1::MyConst
puts Class2::MyConst
[/code]
const_get