2015-02-06 6 views
0

테이블의 값에서 문자열을 출력하는 방법을 배우려고합니다. 예를 들어.테이블 값에서 문자열 반환 루아

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

BTW, 테이블 생성자가 잘못 변경' "사과"= 0'에 하나'사과 = 0' 또는'[ "사과"]입니다 = 0 '이다. –

답변

2

__len 메타 메서드가 정의되어 있지 않으면 # 연산자는 시퀀스에서만 사용할 수 있지만 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

작동합니다. 왜 "사과", "오렌지"등 따옴표가 필요하지 않은지 궁금합니다. –

+0

@BenjaminCondrea 구문상의 설탕입니다. [PiL] (http://www.lua.org/pil/2.5.html)을 참조하십시오. –