gpt4 book ai didi

pointers - golang return [] * TreeNode {}和return [] * TreeNode {nil}有什么区别

转载 作者:行者123 更新时间:2023-12-01 22:43:48 26 4
gpt4 key购买 nike

我是golang的新手,对以下内容感到困惑,

type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}

func test() []*TreeNode {

return []*TreeNode{}
}

func test1() []*TreeNode {

return []*TreeNode{nil}
}

我正在尝试在TreeNode上编写一个递归函数,但是,如果我使用 test样式表示叶节点,则会从调用方函数中获得一个空的TreeNode slice。

如果我使用 test1表示叶节点,那么行为就是我想要的。

我觉得 test1给我一个空TreeNode的提示,但是 test代码给我一个 nil的提示...我不确定我是否正确。您能指出正确的术语或概念吗,这会很棒。

此外,如果您可以让我进一步了解下划线逻辑,那就太好了。

提前致谢。

最佳答案

这将返回一个空 slice :

return []*TreeNode{}

这将返回一个包含一个元素的 slice ,并且该元素是nil指针:
return []*TreeNode{nil}

这些都不给你 TreeNode。第二个为您提供了一个nil的TreeNode指针。您如何解释这些取决于其余的代码,但是我怀疑这不是您想要的,因为没有人可以拥有 val字段。

关于pointers - golang return [] * TreeNode {}和return [] * TreeNode {nil}有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60268838/

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