gpt4 book ai didi

lua - 检查任意级别是否存在 Lua 表成员

转载 作者:行者123 更新时间:2023-12-03 03:58:30 25 4
gpt4 key购买 nike

我需要检查一个成员是否存在于不在下一级但沿着成员路径的表中。

foo = {}
if foo.bar.joe then
print(foo.bar.joe)
end

这将尝试索引字段“bar”(零值),因为 bar 未定义。

我通常的解决方案是逐个测试链条。

foo = {}
if foo.bar and foo.bar.joe then
print(foo.bar.joe)
end

但是当有很多嵌套表时,这可能会非常乏味。有没有比逐个测试更好的方法?

最佳答案

我不明白你所说的“沿着成员的道路”是什么意思。从示例中,我假设您正在尝试在“子表”中查找值?

local function search(master, target) --target is a string
for k,v in next, master do
if type(v)=="table" and v[target] then return true end
end
end

一个简单的例子。如果您使用这样的函数,您可以传递 foo 表和 joe 字符串来查看 foo.*.joe 是否存在。希望这会有所帮助。

关于lua - 检查任意级别是否存在 Lua 表成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com