gpt4 book ai didi

recursion - 使用 Lua 对象进行递归搜索

转载 作者:行者123 更新时间:2023-12-02 05:39:57 26 4
gpt4 key购买 nike

在 Lua 中,我在对象之间有一个树形关系结构,其中一个对象可以有多个子对象,但只有一个父对象,即

obj---obj1---obj2---objd3---obj4---obj5---obj6

如果我想知道 obj6 的“远”父级而不只是 obj5 的直接父级,我该如何实现?我只需要一个比当前对象高两个或更多级别的父级列表,而我正在使用的 API 只有一个 obj.parent 属性。

伪代码也有助于让我朝着正确的方向前进。

最佳答案

obj.parent               -- immediate parent (obj5)
obj.parent.parent -- parent's parent (obj4)
obj.parent.parent.parent -- parent's parent's parent (obj3)

等等等等?

如果你想避免尝试引用一个不存在的 parent ,我想你可以这样做:

function getAncestor(obj, depth)
if not obj.parent then
return nil
elseif depth > 1 then
return getAncestor(obj.parent, depth-1)
end
return obj.parent
end


-- get parent
obj = getAncestor(obj6)

-- get great great grandparent
obj = getAncestor(obj6, 3)

关于recursion - 使用 Lua 对象进行递归搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11145329/

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