例如,我在YAML文件中存储了很多实例变量。这使我可以在程序运行时更改其状态。但是,每次添加新变量时,我都需要更改读取文件的方法。
例如
config = YAML.open_file 'config.yml'
@var1 = config["var1"]
@var2 = config["var2"]
@var3 = config["var3"]
@var4 = config["var4"]
@var5 = config["var5"]
...
如何在YAML文件中添加变量时使它更具动态性,而不必更改它?
答案 0 :(得分:5)
使用Ruby元编程!
instance_variable_set
是您的朋友在这里:
config = YAML.load_file 'config.yml'
config.each do |key,value|
instance_variable_set('@'+key, value)
end
puts @var1