请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

myTreeNode{myNode.node.Left} 为什么要用myTreeNode包一下呢

func (myNode *myTreeNode) postOrder() {
	if myNode == nil || myNode.node == nil {
		return
	}

	left := myTreeNode{myNode.node.Left}
	right := myTreeNode{myNode.node.Right}

left := myTreeNode{myNode.node.Left}
right := myTreeNode{myNode.node.Right}
里面为什么会有myTreeNode{}包一下这个是什么意思?是myTreeNode的初始化吗?可是myNode不是已经是myTreeNode了吗。这个涉及到什么语法点呢

正在回答 回答被采纳积分+3

1回答

ccmouse 2020-03-15 20:17:58

myNode.node.Left的类型是tree.Node,不是myTreeNode。不包一下的话后续代码会编译错误。
编译器的好处就是如果写错他会报出来。
"包一下"的原理就是我这个myTreeNode里面的字段就是tree.Node,这里用myNode.node.Left初始化一个新的myTreeNode,然后就可以调用myTreeNode的函数

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信