gpt4 book ai didi

function - lua不修改函数参数

转载 作者:行者123 更新时间:2023-12-05 08:23:26 25 4
gpt4 key购买 nike

我一直在学习 lua,但似乎无法简单地实现这个二叉树工作......

function createTree(tree, max)
if max > 0 then
tree = {data = max, left = {}, right = {}}
createTree(tree.left, max - 1)
createTree(tree.right, max - 1)
end
end

function printTree(tree)
if tree then
print(tree.data)
printTree(tree.left)
printTree(tree.right)
end
end

tree = {}
createTree(tree, 3)
printTree(tree)

程序执行后只返回 nil。我在网上搜索以了解参数传递在 lua 中是如何工作的(如果它是通过引用还是通过值)并发现某些类型是通过引用传递的(如表和函数)而其他类型是通过值传递的。尽管如此,在将全局变量“tree”传递给“createTree”函数之前,我还是将其创建为一个表,出于同样的目的,我什至将“left”和“right”初始化为“createTree”中的空表。我做错了什么?

最佳答案

可能有必要不通过新表进行初始化,而只是设置其值。

function createTree(tree, max)
if max > 0 then
tree.data = max
tree.left = {}
tree.right = {}
createTree(tree.left, max - 1)
createTree(tree.right, max - 1)
end
end

关于function - lua不修改函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43791080/

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