JCL*_*CLL 1 ruby metaprogramming
我有一个Ruby程序,它生成包含Module定义的文件:
# try.rb
module Test
class F1
def initialize arg
@arg=arg
end
end
end
Run Code Online (Sandbox Code Playgroud)
现在,我想用相同的程序来创建F1的实例.
这样做的成语是什么?
load
或require
文件:
load 'path/to/try.rb'
Run Code Online (Sandbox Code Playgroud)
然后你可以Object.const_get
用来获取类对象的引用,并使用它来创建一个实例:
cls = Object.const_get('Test').const_get('F1')
obj = cls.new('foo')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3015 次 |
最近记录: |