从另一个函数调用配置参数(连接全局错误)

当我运行这个代码时,我得到了 Attempt to concatenate global enemy 错误。

我可以通过移除 for k 循环并使用单独的 if 语句来轻松解决这个问题,如下所示:

if (Config.aaRange.enemyrange.enemy0) then
end
if (Config.aaRange.enemyrange.enemy0) then
end
if (Config.aaRange.enemyrange.enemy0) then
end

但这似乎很杂乱(我有不止三个配置)。我甚至尝试过:

j = "enemy" .. k

然后在 if 语句中添加 j 代替 enemy0,但是没有效果。

我猜这是因为我试图将字符串与数字相加?抱歉,我才刚开始使用 Lua 几个小时 :x

点赞
用户1009479
用户1009479

Lua 支持类型转换,所以将字符串加上一个数是有效的。但是如果你写成

j = "enemy" .. k

解释器会把 Config.aaRange.enemyrange.j 作为 Config.aaRange.enemyrange["j"],你应该使用 Config.aaRange.enemyrange[j] 代替。

不使用另一个变量,你可以写成

if Config.aaRange.enemyrange["enemy" .. k] then

或者更好的写法是:

if Config.aaRange.enemyrange["enemy" .. tostring(k)] then
2014-08-27 01:20:33