【问题标题】:How to store multiple return values in table如何在表中存储多个返回值
【发布时间】:2017-01-01 01:47:52
【问题描述】:

我试图在一个表中存储多个返回值。 GetStatus() 是一个返回 2 个值的函数。

错误报告者说 '=' 应该在 ',' 附近。我认为这是因为逗号用于分隔表格中的元素。

我该如何解决这个问题?谢谢!

我的代码如下:

    local status = {
        ["a"],["b"] = GetStatus();
    }

【问题讨论】:

    标签: lua


    【解决方案1】:

    表构造函数实际上并不支持这样的多重赋值。先建表,后赋值

    local status = {}
    status.a, status.b = GetStatus()
    

    【讨论】:

      【解决方案2】:

      您可以直接从多个返回值创建和分配表,如下所示:

      status = table.pack(GetStatus())

      这会将结果放入状态[1]、状态[2]等中。

      如果您需要字符串作为键,则必须使用:

      t = table.pack(GetStatus()) 状态 = { ['a'] = t[1], ['b'] = t[2] }

      【讨论】:

      • 谢谢。我刚开始使用Lua。我对 table.method 和 table[key] 感到困惑。我知道它们是不同的东西。但是为什么我们在某些情况下使用一个而不是另一个呢?
      猜你喜欢
      • 2011-04-09
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      相关资源
      最近更新 更多