我是 Lua 的初学者。
我认为使用字符串键将值推送到表中也会自动执行数字索引,但我认为我错了。
我的代码:
local t = {}
t.name = "John"
t.age = 30
print("Name : " .. t.name .. "\nAge : " .. t.age)
虽然这段代码运行良好并打印出预期的结果,
Name : John
Age : 30
如果我尝试以这种方式打印结果,
print("Name : " .. t[1] .. "\nAge : " .. t[2])
我收到以下错误:
lua: main.lua:5: attempt to concatenate a nil value (field '?')
stack traceback:
main.lua:5: in main chunk
[C]: in ?
这是否意味着我无法使用for
使用数字索引而无需知道关键字符串?
如果是这样,是否有任何解决办法可以使双向工作?
向表中添加值并不像使用索引键那样添加它们。当您要使用表中的值时,您可以使用点符号访问它们,如第一个示例所示,或者如下所示:
print("Name : " .. t["name"] .. "\nAge : " .. t["age"])
您可以使用该函数迭代表中的键值对pairs
像这样:
for k, v in pairs(t) do
print(k, v)
end
如果你想使用索引而不是字符串键,你可以这样设置:
local t = {
"John",
30,
}
print("Name : " .. t[1].. "\nAge : " .. t[2])
当您这样做时,表中的值t
自动为每个值分配整数索引。如果你想一一迭代它们,你可以使用 ipairs 进行迭代:
for i, v in ipairs(t) do
print(i, v)
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)