我想了解如何从表中的值打印字符串。例如。从表值返回字符串Lua
TestTable = { "Apples" = 0, "Oranges" = 1, "Grapes" = 1, "Bananas" = 0}
for i=1, #TestTable do
if TestTable[i] == 1 then
print(TestTable[i]) --> Oranges Grapes
end
end
不知道这是否合理,但我想打印所有的字符串与1值。
我想了解如何从表中的值打印字符串。例如。从表值返回字符串Lua
TestTable = { "Apples" = 0, "Oranges" = 1, "Grapes" = 1, "Bananas" = 0}
for i=1, #TestTable do
if TestTable[i] == 1 then
print(TestTable[i]) --> Oranges Grapes
end
end
不知道这是否合理,但我想打印所有的字符串与1值。
除非定义了__len
metamethod,#
运算符只能用于一个序列,但TestTable
不是一个。
您可以使用pairs
遍历表:
TestTable = { Apples = 0, Oranges = 1, Grapes = 1, Bananas = 0}
for k, v in pairs(TestTable) do
if v == 1 then
print(k)
end
end
它的工作原理。我很好奇为什么“苹果”,“橙子”等不需要引号? – 2015-02-06 07:25:08
@BenjaminCondrea它是句法糖。参见[PiL](http://www.lua.org/pil/2.5.html)。 – 2015-02-06 07:30:49
顺便说一句,你的表构造不正确,改变' “苹果”= 0'要么'苹果= 0'或'[ “苹果”] = 0'。 – 2015-02-06 07:14:15