ruby:实例化时使用模块/类名的变量

时间:2017-05-29 14:12:21

标签: ruby

假设我有一个对象需要分别是模块Bar1或Bar2的Foo1或Foo2实例,基于条件(假设var1为非假/零)。在eval中这样做很容易:

insty = eval( "bar#{var1 ? '1': '2'}::foo#{var1 ? '1': '2'}.new()")

我如何使用eval?我并不是说明显的方式:

insty = var1 ? Foo1::Bar1.new() : Foo1::Bar2.new()

而是找到一种方法,在运行中,使类名不是一个常数,而是动态,如果这有意义的话。在TCL中,它非常简单。是的,拥有它真是太好了。

0 个答案:

没有答案