在Ruby中,如何维护文件中的一长串实例变量?

时间:2019-06-08 21:54:03

标签: ruby yaml

例如,我在YAML文件中存储了很多实例变量。这使我可以在程序运行时更改其状态。但是,每次添加新变量时,我都需要更改读取文件的方法。

例如

config = YAML.open_file 'config.yml'
@var1 = config["var1"]
@var2 = config["var2"]
@var3 = config["var3"]
@var4 = config["var4"]
@var5 = config["var5"]
...

如何在YAML文件中添加变量时使它更具动态性,而不必更改它?

1 个答案:

答案 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