微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 LUA 中操作嵌套表项

如何解决在 LUA 中操作嵌套表项

如何使用 LUA 添加嵌套表中的某些值。

假设对于列表中数量不确定的项目,我想要将所有“计数”值添加一个变量中的结果。

在以下只有 2 个项目的示例中,期望的结果是具有值为“5”的变量,因为它添加了来自“master”和“data”的“count: 3”和“count: 2”值" 项。

spec:
  nodeSets:
  - config:
      node.store.allow_mmap: true
    count: 3
    name: master
    podTemplate:
      Metadata:
        annotations:
          sidecar.istio.io/inject: "false"
  - config:
      node.store.allow_mmap: true
    count: 2
    name: data
    podTemplate:
      Metadata:
        annotations:
          sidecar.istio.io/inject: "false"

解决方法

要从每个配置访问 count 值,您不一定需要迭代嵌套结构,这将需要多个嵌套的 for 循环。 想想像

这样的结构
letters = {
    a = {1,2,3,4,5},b = {6,7,8,9,10},c = {11,12,13,14,15},}

这里我们需要 2 个 for 循环,一个用于检索字母中的项目,另一个用于检索这些项目中包含的所有嵌套。

您的问题的解决方案只需 1 个循环即可完成。我们只需要遍历表 nodeSets 并索引存储在该表中的每个值的计数。

local sum = 0; 
for _,node in pairs(obj.spec.nodeSets) do
    sum = sum + node.count 
end

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。