我编写了如下的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文件中使用引用?
答案 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
您的程序无需进行任何额外的处理。