【发布时间】:2015-04-25 07:19:42
【问题描述】:
在我的 C++ 项目中使用 Lua 实现时遇到了一个非常奇怪的问题。出于某种原因,它不允许执行包含 #、:、%(以及更多、不太重要)等运算符的脚本。
在结果中...
我需要使用for i = 1, table.getn(tbl) do 而不是for i = 1, #tbl do。
我需要使用string.gsub(str, [..]) 而不是str:gsub([..])。
等等...寻找解决方法真的很烦人。
我的第一个想法是编码。虽然我尝试了多种常见的编码,但都没有奏效。
我遇到的错误:
当使用str:gsub([..]) 而不是string.gsub(str, [..]) 时:
attempt to index global `str' (a string value)
当使用#tbl 而不是table.getn(tbl) 时:
unexpected symbol near `#'
可能是什么问题?我会感谢每一个解决方案,因为我没有想法。
规格:
Lua 版本:
#define LUA_VERSION "Lua 5.0.3"
C++ 11, FreeBSD 10
【问题讨论】:
-
%不起作用怎么办? -
@EtanReisner 它根本不起作用。例如。在做
a % 2 == 0时,我需要解决这个问题(这里的这个人有类似的问题stackoverflow.com/questions/9695697/…)。顺便提一句。更新了我的问题并添加了我要返回的错误。 -
%operator 是 Lua 中相对较新的新增功能,在 5.1 中添加。 -
所以我有我的问题。看来我需要简单地更新 Lua 以使一切正常。
-
或者您可以编写不依赖于较新功能的代码。顺便说一句,问题不是 characters 而是运营商。 (例如,cmets 和字符串文字支持所有这些字符。)您可能需要更新您的问题以使其更清晰。