未完成的长字符串在 <eof> 附近

function writeFloat([=[==[===[====["game.exe"+XXXXXXXX]+XXX====]+XXX===]+XXX==]+XXX=]+XXX, trackbar_getPosition(TRAINERFORM_CETrackBar1))
end

给我了错误

[string "--code..."]:4: 未完成的长字符串

点赞
用户734069
用户734069

Lua有“长字符串”,这是由语法[=*[引入的,其中“=*”表示“零个或多个=字符”。所以[[开始了一个长字符串,[==[[=[也是如此,就像你的例子一样。

长字符串之所以被称为长字符串,是因为它接受从引导语法到终止语法之间的每个字符。这允许您在Lua脚本中作为文字字符串添加文字XML、C++甚至Lua代码等有用的内容。

终止语法是=*],其中“=*”表示与引导长字符串使用的=字符的_完全相同数量_。因此,如果您以[=[开始,则长字符串将_仅以]=]结尾。]]] ====或任何其他终止符都不会结束长字符串;它们将被逐字放入字符串中。

因此,这个例子:

local lit = [=[Long String]==]=]

结果是lit取值为Long String]==

在您的代码中,您从未看到]=]序列。您有====]和类似的东西,但它们甚至不以]字符开头。

在Lua脚本中开头没有结束的长字符串是不合法的。因此出现了编译错误。

2016-02-05 18:30:25