lua 报错:'=' expected near ' '

在使用lua的string.gfind处理字符串时遇到预编译错误:'=' expected near ' '。排查过程中发现错误源于for循环的缩进问题,原本的空格引起语法错误。删除空格并用tab重新缩进后,问题解决。此外,了解到在Lua 5.1之后,string.gfind已被string.gmatch取代,但因luaconf.h的兼容性仍可使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在测试特殊字符串处理时,截取为单个字符,采用string.gfind(s, pattern)库函数

编译时在for uchar in这一行(42行)出现了syntax error during pre-compilation.'=' expected near ' '  这个报错,翻译后是预编译期间的语法错误。这个时候有点懵?,不清楚什么地方语法有问题。开始以为是string.gfind中传入的字符串或者匹配串有问题,测试之后发现没有问题。无意中注意到注释的两个for循环缩进比例不同,在想是不是这个地方空格有问题。

(下图中可以发现竖线没有连在一起,侧面表明空格有问题?)

然后打开注释把之前的空格删掉,英文模式重新用tab键空格。与上图圈中的地方有不同

再次编译运行之后,输出了想要的结果。出现标题所示的错误原因是我在写for循环时,采用了错误的缩进方式,修改之后就OK了。

 

PS:string.gfind(s, pattern) 返回一个迭代器,迭代器每执行一次,返回下一个匹配串,从字符串s开头直到结尾,pattern没指定则每次调用产生整个匹配,通常用于泛性for循环。

注:string.gfind在Lua 5.1以后的string库函数版本中 ,已经被string.gmatch替代。因为luaconf.h中有兼容,所以还可以用(luaconf.h文件路径,在引擎目录下external/lua/luajit/include/中)。Luaconf.h是Lua5.1之后新加的文件,配置的总集, 定义了平台相关的设置,是所有文件都包含的,即Rootly Included。如下图所示,Lua5.1之后math库中math.mod也被math.fmod替代。

关于luaconf.h文件详细介绍可以参考:https://mp.csdn.net/postedit/102820809

参考资料:https://www.cnblogs.com/wongdu2014/p/9224096.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值