如何修复“。”附近的“'=' “ Lua中的错误

时间:2019-10-01 21:50:45

标签: for-loop lua concatenation

此错误发生在代码的第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

但是它会返回标题中的错误。

2 个答案:

答案 0 :(得分:5)

如果要创建多个 global 变量,请使用如下代码:

for i=1,3 do
  for q=1,3 do
    _G["x"..q]=i+1
    print(_G["x"..q])
  end
end

此代码将创建全局变量x1x2x3

但是我认为使用表格会更好:

x={}
for i=1,3 do
  for q=1,3 do
    x[q]=i+1
    print(x[q])
  end
end

答案 1 :(得分:1)

我相信您无意中使用了运算符..

访问表的值时,语法为x.qProgramming 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 .. qProgramming in Lua: 3.4 – Concatenation

  

Lua用“ ..”(两个点)表示字符串连接运算符。如果它的任何操作数是数字,Lua都会将该数字转换为字符串。

print("Hello " .. "World")  --> Hello World
print(0 .. 1)               --> 01