有没有更好的方法来判断Lua表中的一个字段是否存在,如果它被初始化为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 = false,而 if 语句表明它不存在。 有没有更好的方法来查看表中是否存在字段 F,尽管它是一个带有 false 值的布尔值,而不是使用 pairs

点赞
用户258523
用户258523

不要检查 false-y -ness。检查“是 nil”。

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

2015-02-06 14:36:30