首页 > 解决方案 > 在 Ruby 中,如何从文件中维护一长串实例变量?

问题描述

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

例如

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

当我在 YAML 文件中添加变量时,如何使它更加动态并且不需要更改它?

标签: rubyyaml

解决方案


使用 Ruby 元编程!

instance_variable_set你的朋友在这里吗:

config = YAML.load_file 'config.yml'
config.each do |key,value|
  instance_variable_set('@'+key, value)
end

测试:

puts @var1

推荐阅读