2015-02-06 77 views
0

我想了解如何從表中的值打印字符串。例如。從表值返回字符串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值。

+3

順便說一句,你的表構造不正確,改變' 「蘋果」= 0'要麼'蘋果= 0'或'[ 「蘋果」] = 0'。 – 2015-02-06 07:14:15

回答

2

除非定義了__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 
+0

它的工作原理。我很好奇爲什麼「蘋果」,「橙子」等不需要引號? – 2015-02-06 07:25:08

+0

@BenjaminCondrea它是句法糖。參見[PiL](http://www.lua.org/pil/2.5.html)。 – 2015-02-06 07:30:49