为 Lua 表中的每个元素创建一个本地变量

如果此帖子的标题有误,请提前原谅,我对 Lua 还比较陌生,不确定该如何处理这种情况。我想为表中的每个元素创建一个本地变量,然后打印它。

由于我不太懂英语,我的知识不是很好,因此我会添加一个例子来解释自己:

testTable = { test1 = "Test 1", test2 = "Test 2", test3 = "Wow so many test" }

for ?? in testTable do ?????? end

print(test1)
print(test3)
输出应该是:
Test 1
Wow so many test

我知道我可以在打印中使用 testTable.test1,但这里的目的是创建一个本地变量 test1

在这种情况下,最好的方法是什么?

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

点赞
stackoverflow用户2858170
stackoverflow用户2858170
testTable = { test1 = "Test 1", test2 = "Test 2", test3 = "Wow so many test" }

for k, v in pairs(testTable) do
  print(v)
end

在这个循环中,变量v只在该循环体中有效。如果您不想遍历整个表,可以简单地执行以下操作:

local test1 = testTable.test1
local test3 = testTable.test3

如果有太多的元素,以上方法可能会变得有点麻烦。

问题在于你想要做什么。

请注意,您的表并没有顺序。因此,如果您想按顺序打印它们,必须先对键进行排序。

local keys = {}
for k, v in pairs(testTable) do
  table.insert(keys, k)
end

table.sort(keys)

for i,v in ipairs(keys) do
  local test = testTable[v]
  print(test)
end

如果您超过了test9,则需要更聪明的排序方法,但这是另一个话题。

也许考虑使用一个序列:

testTable = {"Test 1", "Test 2"}

或者,如果您实际上使用这些字符串,请使用数字for循环代替该表。

for i = 1, 16 do
  print("Test " .. i)
end
2021-10-12 12:05:12