function writeFloat([=[==[===[====["game.exe"+XXXXXXXX]+XXX====]+XXX===]+XXX==]+XXX=]+XXX, trackbar_getPosition(TRAINERFORM_CETrackBar1))
end
给我错误
[string“--code ...”]:4:未完成的长字符串
答案 0 :(得分:3)
Lua有#34;长字符串",由[=*[
的语法引起,其中" = *"表示"零个或多个=
字符"。因此,[[
会像[==[
或[=[
一样开始一个长字符串,就像你的情况一样。
长字符串之所以如此命名是因为它接受诱导语法和终止语法之间的每个字符。这允许您执行有用的操作,例如在Lua脚本中添加逐字XML,C ++甚至Lua代码作为文字字符串。
终止语法为]=*]
,其中" = *"表示用于引发长字符串的=
个字符的完全相同的数字。因此,如果您从[=[
开始,则长字符串仅以<{1}}结束。 ]=]
和]]
或任何其他终点不会结束长字符串;他们将被逐字记录到字符串中。
所以这个:
]====]
结果local lit = [=[Long String]==]=]
取值lit
。
在您的代码中,您永远不会看到Long String]==
序列。您有]=]
和类似的内容,但他们甚至不会以====]
字符开头。
启动永远不会以Lua脚本结尾的长字符串是非法的。因此编译错误。