如何创建带有递增数字的变量名称

我正在编写一个Lua脚本。我想要一个变量名,它是由一个递增的数字连接而成的。

例如:Q0001,Q0002,Q0003,...,Q9999

我用以下脚本来实现这个目的:

local rnd = math.random (0,9999)
local Text = ""
print(rnd)
if rnd > 0 and rnd < 10 then
    --在数字和“Q”之前添加“0”
    Text = Q000 .. rnd
elseif rnd >= 10 and rnd < 100 then
    --在数字和“Q”之前添加“00”
    Text = Q00 .. rnd
elseif rnd >= 100 and rnd < 1000 then
    --在数字和“Q”之前添加“0”
    Text = Q0 .. rnd
elseif rnd >= 1000 then
    --添加“Q”
    Text = Q .. rnd
end
print(Text)

由于这只是我的程序的一部分,所以我将其放入一个函数中。后来在程序的某个地方我想使用变量来获取信息,因为变量Q###的乘积是我编写的一个表。我的第二个解决问题的想法是将其转换为文本格式,但是我不知道如何将其转换为声明。

编辑04/04/15 19:17:为了更清楚。我希望在脚本结束后,Text可以成为我之前设置的表格的一部分。因此,我可以说Text.Name,例如。

点赞
用户1190388
用户1190388

使用带填充的格式说明符和 string.format

一行即可:

Text = ("Q%04d"):format( rnd )
-- 等价于 Text = string.format( "Q%04d", rnd )

不要创建太多的表,而是使用一个单独的表,并将上述值作为键/索引:

t = {
    Q0001 = "something",
    Q0002 = "something",
    Q0013 = "something",
    Q0495 = "something",
    -- 同理
}
2015-04-04 10:40:09