在命令
中table.insert(table, data)
你如何使用它,但是对于插入有字符串键?
PSEUDO CODE
tableOfStuff = {cat, pig, hat, lemon}
t = {}
for i=1, #tableOfStuff do
table.insert(t, key=tableOfStuff[i], data=tableOfStuff[i])
end
所以我最终得到一张桌子......
t['cat'] == 'cat'
t['dog'] == 'dog'
etc.....
修改
我认为我的例子让人感到困惑......我问的是如何使用“insert.table”但是用字符串键插入tings ...
table.insert(table,data,stringkey)
这样的事情?
答案 0 :(得分:1)
如果您只想创建一个以字符串作为键的表,那么请查看Table Constructors,您有几个选项。
选项1:
t = { key1 = "value1", key2 = "value2" }
--or like this:
t = { ["key1"] = "value1", ["key2"] = "value2" }
选项2 :(先创建一个空表)
t = {}
t.key1 = "value1"
--or like this
t["key2"] = "value2"
看起来你希望键和值是相同的字符串,这是可能的。只需为key1和value1写相同的东西。所以t["cat"] = "cat"
。
根据您的示例代码,您看起来想要获取现有的字符串表并从中创建一个新表,其中包含字符串作为键和值。要做到这一点:
table1 = { "cat", "pig", "hat", "lemon" }
table2 = {}
for i=1, #table1 do
table2[ table1[i] ] = table1[i]
end
--test
print table2["cat"]
这是关于Lua中表格的一个很好的教训:Lua Tables Tutorial
答案 1 :(得分:0)
评论是对的。您不需要,而且您无法使用table.insert。您可以看到文档table.insert。它只支持该号码。它是&#39 ;用于表的数组部分。但是你正在使用表的哈希部分。
代码:
tableOfStuff = {"cat", "pig", "hat", "lemon"}
t = {}
for i=1, #tableOfStuff do
local szKey = tableOfStuff[i];
t[szKey] = tableOfStuff[i]; -- the value can be the others.
end