如何在yaml文件中引用值?

时间:2019-02-18 07:18:47

标签: yaml

我编写了如下的YAML文件:

private_ips:
    - 192.168.1.1
    - 192.168.1.2
    - 192.168.1.3
    - 192.168.1.4

testcases:
    - name: test_outbound
      ip: << I want to use reference to  private_ips[0] = '192.168.1.1'

如何在YAML文件中使用引用?

1 个答案:

答案 0 :(得分:0)

您可以使用类似的内容:

<audio class="audio" src="../../audio/na.mp3" autostart="false"></audio>
<button onclick="openAudio(this)">나</button>

<audio class="audio" src="../../audio/gak.mp3" autostart="false"></audio>
<button onclick="openAudio(this)">각</button>

在YAML中。但这要求加载YAML的程序为标记ip: !Ref private_ips.0 实现一种特殊类型,该标记以相对于当前数据结构的方式解释其节点。在大多数YAML加载程序中,这有些问题,因为它们进行深度优先遍历,并且在构建树YAML文档的根的!Ref标记节点时没有任何概念。这可以通过在加载数据结构之后进行第二遍来解决。 YAML规范中没有“快捷方式”来进行这种遍历文档以获得值,而无需加载程序执行特殊操作(即,YAML规范中未指定)。

YAML规范中的锚(由!Ref表示)和别名(由&表示)的概念取决于您要如何使用,可能会解决您的问题,例如如果您想尝试使用哪个IP地址进行测试:

*

这应该在符合规范的任何YAML加载器中加载,就像最后一行写为:

private_ips:
    - &test 192.168.1.1
    - 192.168.1.2
    - 192.168.1.3
    - 192.168.1.4

testcases:
    - name: test_outbound
      ip: *test

您的程序无需进行任何额外的处理。