在Lua中,您可以通过以下方式创建表:
local t = { 1, 2, 3, 4, 5 }
但是,我想创建一个关联表,我必须按照以下方式进行:
local t = {}
t['foo'] = 1
t['bar'] = 2
以下是错误:
local t = { 'foo' = 1, 'bar' = 2 }
有没有办法与我的第一个代码段类似?
答案 0 :(得分:58)
写这个的正确方法是
local t = { foo = 1, bar = 2}
或者,如果表中的密钥不是合法标识符:
local t = { ["one key"] = 1, ["another key"] = 2}
答案 1 :(得分:8)
我相信如果你像这样看待它会更好,也可以理解
local tablename = {["key"]="value",
["key1"]="value",
...}
使用以下内容查找结果: tablename.key = value
表格作为词典
表还可用于存储未编制索引的信息 数字或顺序,如数组。这些存储类型是 有时称为字典,关联数组,散列或映射 类型。我们将使用术语词典,其中元素对具有键 和一个价值。该键用于设置和检索关联的值 用它。请注意,就像数组一样,我们可以使用表[key] = value 格式以将元素插入表中。关键不一定是数字, 它可以是一个字符串,或者就此而言,几乎任何其他Lua对象 (除了零或0/0)。让我们构造一个具有一些键值的表 配对:
t = {apple =“green”,orange =“orange”,banana =“yellow”} 对于k,v成对(t)打印(k,v)结束苹果绿橙橙色香蕉黄
答案 2 :(得分:1)
要初始化具有与字符串值匹配的字符串键的关联数组,您应该使用
local petFamilies = {["Bat"]="Cunning",["Bear"]="Tenacity"};
但不
local petFamilies = {["Bat"]=["Cunning"],["Bear"]=["Tenacity"]};