有没有更好的方法来查看 Lua table 中的字段是否存在,如果它被初始化为 false

Is there a better way to see if a field in a Lua table exists if it is initialized with false

正如标题所暗示的那样。考虑这个来源:

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 声明表示它不存在。 有没有更好的方法来查看 F 是否作为字段存在于 table 中,尽管它是一个布尔值,其中写入的 false 值比 pairs 更好?

不要检查错误。检查 "is nil".

所以,不要这样做 if X then。做 if X ~= nil then.