管道符 Pipeline

管道符

为了在 YAML 中实现类似 JavaScript 的链式数据处理,AzureFlow 引入了管道符的语法扩展。

在下述示例中,attributes | sample(5) 表示从定义的属性列表中随机抽取 5 个元素。

data:
  attributes | sample(5):
    - name: "物理攻击"
      value: random.int(1, 100)
    - name: "法术攻击"
      value: random.int(1, 100)
    - name: "暴击率"
      value: random.int(1, 100)
    - name: "生命值"
      value: random.int(1, 100)
    - name: "护甲"
      value: random.int(1, 100)
    - name: "魔抗"
      value: random.int(1, 100)

管道符支持多重链式调用,实现更复杂的数据处理逻辑。

data:
  attributes | filter(attr => attr.value > 50) | sort_by('value', 'desc') | sample(3):
    - name: "物理攻击"
      value: random.int(1, 100)
    - name: "法术攻击"
      value: random.int(1, 100)
    - name: "暴击率"
      value: random.int(1, 100)
    - name: "生命值"
      value: random.int(1, 100)
    - name: "护甲"
      value: random.int(1, 100)
    - name: "魔抗"
      value: random.int(1, 100)

上述配置将属性列表中值大于 50 的元素进行降序排序后,随机抽取 3 个元素。

AzureFlow 对 YAML 语法的增强,使得配置文件更具可读性和可维护性。

通过支持原生 YAML 数据结构和引入管道符的链式数据处理,可以更高效地定义和管理复杂的数据配置。

建议在实际项目中逐步采用新的 YAML 语法,以充分利用其带来的优势。

最后更新于