此错误发生在代码的第3行,我不知道为什么。
我正在尝试使用x..q创建多个变量,但这不起作用。
for i=1,3 do
for q=1,3 do
x..q=i+1
print(x..q)
end
end
输出应为: 2 2 2 3 3 3 4 4 4
但是它会返回标题中的错误。
答案 0 :(得分:5)
如果要创建多个 global 变量,请使用如下代码:
for i=1,3 do
for q=1,3 do
_G["x"..q]=i+1
print(_G["x"..q])
end
end
此代码将创建全局变量x1
,x2
和x3
。
但是我认为使用表格会更好:
x={}
for i=1,3 do
for q=1,3 do
x[q]=i+1
print(x[q])
end
end
答案 1 :(得分:1)
我相信您无意中使用了运算符..
。
访问表的值时,语法为x.q
。 Programming in Lua: 2.5 – Tables
要表示记录,请使用字段名称作为索引。 Lua通过提供a.name作为a [“ name”]的语法糖来支持这种表示。因此,我们可以以更简洁的方式将上一个示例的最后几行写为
a.x = 10 -- same as a["x"] = 10 print(a.x) -- same as print(a["x"]) print(a.y) -- same as print(a["y"])
连接字符串时,语法为x .. q
。
Programming in Lua: 3.4 – Concatenation
Lua用“ ..”(两个点)表示字符串连接运算符。如果它的任何操作数是数字,Lua都会将该数字转换为字符串。
print("Hello " .. "World") --> Hello World print(0 .. 1) --> 01