如何创建以递增数字连接的变量名
How to create variable names that are concatenated with a increasing number
我目前正在编写 Lua 脚本。在那里我想要一个变量名,它与一个递增的数字连接起来。
示例:Q0001、Q0002、Q0003、...、Q9999
我的以下脚本是:
local rnd = math.random (0,9999)
local Text = ""
print(rnd)
if rnd > 0 and rnd < 10 then
--Add Nulls before Number and the "Q"
Text = Q000 .. rnd
elseif rnd >= 10 and rnd < 100 then
--Add Nulls before Number and the "Q"
Text = Q00 .. rnd
elseif rnd >= 100 and rnd < 1000 then
--Add Null before Number and the "Q"
Text = Q0 .. rnd
elseif rnd >= 1000 then
--Add "Q"
Text = Q .. rnd
end
print(Text)
逻辑上我把它放到一个函数中,因为它只是我程序的一部分。在程序的后面,我喜欢通过变量获取信息,因为变量 Q###
的乘积是我编写的 table。我的第二个解决问题的想法是将其转换为文本,但我不知道如何将其转换为声明。
编辑 04/04/15 19:17:太清楚了。我希望 Text 位于我之前设置的 table 的脚本结尾之后。这样我就可以说 Text.Name
例如
使用 string.format
和填充格式说明符:
只有一行:
Text = ("Q%04d"):format( rnd )
-- same as Text = string.format( "Q%04d", rnd )
不要创建那么多 table,而是使用单个 table 并将上述值设置为 keys/indexes:
t = {
Q0001 = "something",
Q0002 = "something",
Q0013 = "something",
Q0495 = "something",
-- so on
}
我目前正在编写 Lua 脚本。在那里我想要一个变量名,它与一个递增的数字连接起来。
示例:Q0001、Q0002、Q0003、...、Q9999
我的以下脚本是:
local rnd = math.random (0,9999)
local Text = ""
print(rnd)
if rnd > 0 and rnd < 10 then
--Add Nulls before Number and the "Q"
Text = Q000 .. rnd
elseif rnd >= 10 and rnd < 100 then
--Add Nulls before Number and the "Q"
Text = Q00 .. rnd
elseif rnd >= 100 and rnd < 1000 then
--Add Null before Number and the "Q"
Text = Q0 .. rnd
elseif rnd >= 1000 then
--Add "Q"
Text = Q .. rnd
end
print(Text)
逻辑上我把它放到一个函数中,因为它只是我程序的一部分。在程序的后面,我喜欢通过变量获取信息,因为变量 Q###
的乘积是我编写的 table。我的第二个解决问题的想法是将其转换为文本,但我不知道如何将其转换为声明。
编辑 04/04/15 19:17:太清楚了。我希望 Text 位于我之前设置的 table 的脚本结尾之后。这样我就可以说 Text.Name
例如
使用 string.format
和填充格式说明符:
只有一行:
Text = ("Q%04d"):format( rnd )
-- same as Text = string.format( "Q%04d", rnd )
不要创建那么多 table,而是使用单个 table 并将上述值设置为 keys/indexes:
t = {
Q0001 = "something",
Q0002 = "something",
Q0013 = "something",
Q0495 = "something",
-- so on
}