为什么 Corona 加载代码时会出错,而使用 Lua 加载却没有问题?

我在代码的 building.transmitter:[operation](player, unpack({...})) 部分遇到了问题,在 Corona 中会出现错误,但在单独的 Lua 中运行时却没问题。我怀疑是 : 放在 [operation] 变量之前导致的问题,但我不知道为什么会这样。

具体而言,这个模块的写法如下:

local activate = {}

local function activate.transmitter(player, operation, ...)
  building = player:getTile()
  building.transmitter:[operation](player, unpack({...}))
end

return activate

出现的运行时错误是:

“从文件加载模块时出错,'<' 规定在 '[' 附近”

编辑 - 哇!我没有注意到在 Corona 中调试时更改了一些代码以确定问题所在。然后我错误地在 Lua 中测试了 编辑后 的代码,并且运行良好。我没有意识到代码不是原始的,直到 siffiejoe 指出解释器也出错了。对于错误我感到非常抱歉。

点赞
用户1376249
用户1376249

也许 Corona 使用的是不支持此语法的较旧版本的 Lua。你可以尝试以下解决方法,而不是使用

building.transmitter:[operation](player, unpack({...}));

你可以调用

building.transmitter[operation](building.transmitter, player, unpack({...}));
2014-11-04 00:19:23