代码之家  ›  专栏  ›  技术社区  ›  Wookai

如何在Lua中快速初始化关联表?

  •  31
  • Wookai  · 技术社区  · 17 年前

    在Lua中,可以通过以下方式创建表:

    local t = { 1, 2, 3, 4, 5 }
    

    但是,要创建关联表,必须按以下方式执行:

    local t = {}
    t['foo'] = 1
    t['bar'] = 2
    

    下面给出了一个错误:

    local t = { 'foo' = 1, 'bar' = 2 }
    

    3 回复  |  直到 12 年前
        1
  •  68
  •   bendin    17 年前

    写这篇文章的正确方法是

    local t = { foo = 1, bar = 2}
    

    或者,如果表中的键不是合法标识符:

    local t = { ["one key"] = 1, ["another key"] = 2}
    
        2
  •  10
  •   HK boy user11626805    6 年前

    我相信如果你这样看的话,效果会更好,也更容易理解

    local tablename = {["key"]="value",
                       ["key1"]="value",
                       ...}
    

    通过以下方式查找结果:

    作为字典的表格

    表还可用于存储未编入索引的信息 数字的,顺序的,如数组。这些存储类型是 有时称为字典、关联数组、哈希或映射 类型。我们将使用术语词典,其中元素对有一个键 和一个值。该键用于设置和检索关联的值 用它。注意,就像数组一样,我们可以使用表[key]=value 将元素插入表中的格式。钥匙不一定是数字, 它可以是字符串,也可以是几乎任何其他Lua对象 (零或0/0除外)。让我们用一些键值构造一个表 其中一对:

    > t = { apple="green", orange="orange", banana="yellow" }
    > for k,v in pairs(t) do print(k,v) end
    apple   green
    orange  orange
    banana  yellow
    

    发件人: http://lua-users.org/wiki/TablesTutorial

        3
  •  1
  •   izogfif    15 年前

    若要初始化具有与字符串值匹配的字符串键的关联数组,应使用

    local petFamilies = {["Bat"]="Cunning",["Bear"]="Tenacity"};
    

    但是

    local petFamilies = {["Bat"]=["Cunning"],["Bear"]=["Tenacity"]};