【问题标题】:Inserting Key Pairs into Lua table将密钥对插入 Lua 表
【发布时间】:2011-12-17 12:51:33
【问题描述】:

刚刚选择了 Lua 并试图弄清楚如何构建表。 我在 table.insert 上进行了搜索并找到了信息,但我发现的所有示例似乎都假设我只想要数字索引,而我想要做的是添加密钥对。

那么,我想知道这是否有效?

    my_table = {}
    my_table.insert(key = "Table Key", val = "Table Value")

这将在循环中完成,我需要稍后才能访问内容:

    for k, v in pairs(my_table) do
        ...
    end

谢谢

【问题讨论】:

    标签: lua


    【解决方案1】:

    基本上有两种方法可以创建表并用数据填充它们。

    首先是使用table constructor 立即创建和填充表格。这样做如下:

    tab = {
        keyone = "first value",      -- this will be available as tab.keyone or tab["keyone"]
        ["keytwo"] = "second value", -- this uses the full syntax
    }
    

    当你事先不知道你想要什么值时,你可以先使用{}创建表,然后使用[]操作符填充它:

    tab = {}
    tab["somekey"] = "some value" -- these two lines ...
    tab.somekey = "some value"    -- ... are equivalent
    

    请注意,只有当键是符合“标识符”规则的字符串时,您才能使用第二个(点)语法糖 - 即以字母或下划线开头并且仅包含字母、数字和下划线。

    P.S.:当然你可以将这两种方式结合起来:用表构造函数创建一个表,然后用[]操作符填充其余部分:

    tab = { type = 'list' }
    tab.key1 = 'value one'
    tab['key2'] = 'value two'
    

    【讨论】:

      【解决方案2】:

      看来这应该是答案:

      my_table = {}
      Key = "Table Key"
      -- my_table.Key = "Table Value"
      my_table[Key] = "Table Value"
      

      为我完成了这项工作。

      【讨论】:

      • 在我试图理解一门新语言时,无论谁投票给我,都非常好。那是更近了一步,后来我发现“my_table[Key]”有效。
      猜你喜欢
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 2013-08-06
      • 2018-12-21
      • 2020-03-20
      • 2017-05-15
      • 2015-10-23
      • 1970-01-01
      相关资源
      最近更新 更多