在Lua中如何创建一个动态变量名?

我刚刚接触Lua,遇到了一些困难:

我正在尝试创建动态变量名:

local tblAlphabet = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};

local count = 0;

for k, v in pairs (tblAlphabet) do

  count = count + 1;

  [v.."button"]  = ui.newButton{ --我该怎么做才能让它起作用?我遇到了语法错误

--这里是一些代码

  }

原文链接 https://stackoverflow.com/questions/5061755

点赞
stackoverflow用户11649
stackoverflow用户11649

不清楚你想做什么;但如果你想通过编程方式创建大量的全局变量,只需要记住全局变量是 _G 表的字段:

_G['anyvar'] = 'something'
print (anyvar)
2011-02-21 03:24:16
stackoverflow用户206020
stackoverflow用户206020

你可以创建一个包含你的变量的表格。

local tblAlphabet = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}
local vars = {}
for k, v in pairs(tblAlphabet) do
    vars[v .. "_button"] = ui.newButton()
end

然后你可以通过迭代器或直接访问(vars.a_button)来访问 vars

2011-02-21 05:34:26
stackoverflow用户798374
stackoverflow用户798374

你创建的变量是没有名称的一等值。

你可以将它们分配给有名称的变量。可以是本地变量,也可以是一个表中的键名(全局表或你所创建的表)。

你不需要一个数据表来创建你的按钮名称,因为它们遵循一个简单的模式。

t = {}
for b = string.byte('a'), string.byte('z') do
    c = string.char(b)              -- 'a' to 'z'
    t['button'..c] = ui.newButton() -- 类似这样
end
2012-08-03 22:57:19