我想在 YAML 文件中创建动态键名和值,这样可以节省一些空间。
例如:
KID(\d+)_AGE: &kid(params)_age
孩子(参数):“18”
所以预期的结果应该是:
KID1_AGE: &kid1_age
孩子1:“18”
因此,每当我输入 KID1_AGE、KID2_AGE 时,密钥都是动态的,它们将获取相同的哈希值。
关于如何获得这个的任何建议?这主要用于 Ruby。
谢谢你。
如果您使用的是 Rails,则首先使用 ERb 解析文件
# foo.yaml
my_random: <%= Random.rand(1..100) %>
所以你可以做类似的事情
<% 100.times do |n| %>
<%= "KID#{n}_AGE: &kid#{n}_age" %>
<% end %>
不过,这感觉代码很臭。您可能应该解释您的总体目标,而不是您希望如何实现它。
您不能使用看起来像正则表达式模式的字符串作为键,并期望它像正则表达式一样工作。YAML 和 Ruby 不能那样工作。您也不能使用正则表达式模式作为散列的键,然后在散列中抛出一个字符串,让键自动匹配并返回关联的值。哈希和 Ruby 不是这样工作的。
您可以创建与模式匹配的键,然后让 Ruby 遍历 YAML 返回的哈希,寻找匹配的键,但这不会为您节省任何空间,具体取决于您所说的目标。
尽可能充分地使用 YAML 使用别名和锚点的能力。它们可以使 YAML 文件更小,同时在文件被解析后仍然可以访问您需要的值。