【问题标题】:Extend an array in YAML?在 YAML 中扩展数组?
【发布时间】:2013-10-30 10:01:10
【问题描述】:

假设我有:

base_array:
  -1
  -2

我该怎么做:

my_array: << base_array
  -3

所以 my_array 是 [1,2,3]

更新:我应该指定我希望在 YAML 本身内部进行扩展。

【问题讨论】:

标签: yaml


【解决方案1】:

由于已经评论的issue#35 存在,merge-keys &lt;&lt; 对您没有帮助。它只会将引用的 keys 合并/插入到地图中(请参阅 YAML 文档merge)。相反,您应该使用 sequences 并使用 anchor &amp;alias *

所以你的例子应该是这样的:

base_list: &base
    - 1
    - 2

extended: &ext
    - 3

extended_list:
    [*base, *ext]

会给出这样的输出结果(JSON):

{
  "base_list": [
    1, 
    2
  ], 
  "extended": [
    3
  ], 
  "extended_list": [
    [
      1, 
      2
    ], 
    [
      3
    ]
  ]
} 

虽然不完全符合您的预期,但也许您的解析/加载环境可以将嵌套数组/列表展平为一个简单的数组/列表。

您可以随时在线测试 YAML,例如使用:

【讨论】:

    【解决方案2】:

    我需要做同样的事情,但要在 Azure DevOps Pipeline 上运行。特别是,我必须动态更新stage dependency。我是怎么做到的:

    dependents: [Stage_A, Stage_B]
    otherDependents: [Stage_C] # This needed to be added by policy to the pipeline's execution
    dependsOn:
    - ${{ each dependent in dependents }}:
      - ${{ dependent }}
    - ${{ each dependent in otherDependents }}:
      - ${{ dependent }}
    

    这样做会产生所需的设置:

    dependents: [Stage_A, Stage_B]
    otherDependents: [Stage_C] # This needed to be added by policy to the pipeline's execution
    dependsOn:
      - Stage_A
      - Stage_B
      - Stage_C
    

    我之所以说是动态的,是因为变量 dependents 来自我必须附加 Stage_C 的模板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-30
      • 2012-09-29
      • 1970-01-01
      • 2023-03-28
      • 2014-07-18
      • 1970-01-01
      • 2011-09-23
      • 2014-08-21
      相关资源
      最近更新 更多