结构体的传递有疑问

来源:4-4 使用内嵌来扩展已有类型

小鲁锅的进阶之路

2020-04-28

func (myNode *myTreeNode) postOrder() {

}
*myTreeNode是指针接收者,postOrder()是方法名
mynode是什么?

其次mynode已经是一个Node结构体,
为什么不可以写成left:=myNode.node.Left,外面为什么加上myTreeNode()?

写回答

1回答

ccmouse

2020-05-01

myNode是变量的名字,*myTreeNode是变量的类型。写在postOrder之前表示这是一个接收者变量。

加上myTreeNode()是因为myNode.node.Left的类型不是myTreeNode,是TreeNode,所以需要转换。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程