在Lua中,如何使用字符串键插入到表中?

在Lua中,如何使用字符串键插入到表中?,lua,lua-table,Lua,Lua Table,在命令中 table.insert(table, data) 如果插入没有字符串键,你怎么能使用它呢 伪码 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...

在命令中

table.insert(table, data)
如果插入没有字符串键,你怎么能使用它呢

伪码

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,但使用字符串键插入字符串

table.insert(table,data,stringkey)

类似这样的内容?

注释是正确的。您不需要也不能使用table.insert。您可以查看文档。它只支持数字。它用于表的数组部分。但您使用的是表的哈希部分

代码:

创建一个表 如果您只想创建一个以字符串作为键的表,那么签出,您有两个选项

备选案文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中的表,这里有一个很好的教训:

t[tableOfStuff[i]=tableOfStuff[i]那么对于一个大的列表,你是如何做到这一点的呢?对于_,输入ipairstableOfStuff do t[key]=key end。感谢所有的帮助,但这并不是我真正想要的。。对不起,我把人搞糊涂了。。。。我把一些新的信息放在编辑下的主帖子里。你能解释一下为什么对于u,输入ipairstableOfStuff do t[key]=key end是不够的吗?据我所知,根据您的编辑,这正是您所要求的。那么,我如何添加到表中,而使用字符串键呢?我已经给出了您的一个简单代码。因此,重点是使用表的哈希部分:t[key]=value;
table1 = { "cat", "pig", "hat", "lemon" }
table2 = {}
for i=1, #table1 do
    table2[ table1[i] ] = table1[i]
end

--test
print table2["cat"]