如何使用字符串和拼接访问变量名

我想要做如下的事情:

local archetype = "melee"
local meleeNames = { x,y,z }

if itemNumber > # [archetype .. "Names"] then
    itemNumber = # [archetype .. "Names"]
end

但是,我不知道如何访问变量,上面也不是正确的方法...

[archetype .. "Names"]

谢谢, Gullie

点赞
用户691032
用户691032

正如@yu-hao在他的评论中所说,你可以创造出这样的语法。你可以使用一些不好的技巧来达到类似的效果,但这是不推荐的。相反,可以像这样做:

local archetypes = { meleeNames = { x, y, z },
                     ...其他 }
local archetype = "melee"

如果 itemNumber > #archetypes[archetype .. "Names"],那么
  itemNumber = #archetypes[archetype .. "Names"]
end
2014-09-11 09:45:32