Lua代码报错:'=' expected near 'data' 原因排查求助
Lua报错“'=' expected near 'data'”的原因及解决办法
直接原因
Lua里没有global关键字,你写的global data = {}是语法错误。Lua解析器无法识别global这个词,会误以为它是变量名,后面应该跟=,结果看到data,就抛出了“'=' expected near 'data'”的错误。
在Lua中,不需要用关键字声明全局变量,直接写data = {}就行——只要变量没被local修饰,默认就是全局变量。
间接可能原因
你提到是添加未展示的代码后才出问题,还有一种可能是前面新增的代码存在语法错误,导致Lua解析器的语法分析错位,把这行代码当成了前面错误代码的延续,从而报错。比如前面的代码可能存在:
- 未闭合的括号、大括号或者引号
- 语句结尾缺少必要的分隔(虽然Lua通常用换行分隔,但某些复杂语句后可能需要加分号)
修正后的代码片段
local file = 'data.txt' local lines = lines_from(file) data = {} -- 去掉多余的global关键字 for key, value in pairs(lines) do local row = {} for i=1, #value do local char = value:sub(i,i) row[i] = char end data[key] = row end
内容的提问来源于stack exchange,提问作者user13524876
相关产品推荐
相关产品推荐

