lua - 如果用 false 初始化,是否有更好的方法来查看 Lua 表中的字段是否存在

标签 lua lua-table

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

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尽管它是一个带有 false 的 bool 值,但作为一个字段存在于表中写在里面的值比 pairs 好?

最佳答案

不要检查 false-y-ness。检查“是否为零”。

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

关于lua - 如果用 false 初始化,是否有更好的方法来查看 Lua 表中的字段是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28368097/

相关文章:

object - 在 Lua 中,如何找出存储对象的键?

c++ - 我不明白为什么我有一个悬空指针

c# - 在 C#/.Net 中解析 Lua 数据结构的最简单方法

lua - 条件评估不正确(Lua 4)

oop - Lua 元表和元方法 - 如何调用不同的成员函数

arrays - Lua的混合数组和哈希表;它存在于其他任何地方吗?

c - 正确处理 Lua 绑定(bind) C 代码中的 malloc 调用

lua - 在错误的位置插入 - 为什么 lua 表会这样?

lua - [{n,{}}] 在 lua 中做什么?

checkbox - 删除复选框表中的第一个值