2015-02-06 4 views
2

제목에서 알 수 있듯이. 이 소스를 고려거짓으로 초기화 된 경우 Lua 테이블의 필드가 존재하는지 확인하는 더 좋은 방법이 있습니까?

인쇄
A = {} 
A.T = true 
A.F = false 
A.N = 123 
A.S = "ASDF" 
A.E = "" 

for k,v in pairs(A) do 
    local Ex = "" 
    if(A[k]) then Ex = "YES" 
    else Ex = "NO" 
    end 
    print(k,v,Ex) 
end 

(이 pairs을 때문에 순서가 다르다) :

T  true YES 
F  false NO 
S  ASDF YES 
N  123  YES 
E    YES 

당신이 여기에 A.F = falseif 문이없는 존재라고 볼 것처럼. false 값이 pairs보다 낳은 부울인데도 F이 테이블의 필드로 존재하는지 확인하는 더 좋은 방법이 있습니까?

답변

6

false-y-ness를 확인하지 마십시오. "is is nil"을 확인하십시오.

따라서 if X then을 사용하지 마십시오. if X ~= nil then하십시오.