如何修复 Lua 中的 " '=' expected near '. .' " 错误

这个错误发生在我的代码第三行,我不知道为什么。

我尝试使用 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

但实际上它返回了标题中的错误。

点赞
用户7396148
用户7396148

我认为你无意间使用了运算符..

当访问表格的值时,语法是x.q《Lua 程序设计》: 2.5 - 表格

对于记录,你可以使用字段名作为索引。Lua 通过提供 a.name 作为 a["name"] 的语法糖来支持这种表示。因此,我们可以将前面示例的最后几行代码以一种更清洁的方式编写如下

a.x = 10                    -- 等同于 a["x"] = 10
print(a.x)                  -- 等同于 print(a["x"])
print(a.y)                  -- 等同于 print(a["y"])

当连接字符串时,语法是x .. q《Lua 程序设计》: 3.4 - 连接字符串

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

print("Hello " .. "World")  --> Hello World
print(0 .. 1)               --> 01
2019-10-01 22:02:00
用户107090
用户107090

如果您想创建多个全局变量,请使用以下代码:

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
2019-10-01 22:18:02