f(node)完成啥功能?

来源:8-1 defer调用

qq_未来为我而来_0

2019-05-02

func (node *Node) Traverse() {
node.TraverseFunc(func(n *Node) {
n.Print()
})
fmt.Println()
}

func (node *Node) TraverseFunc(f func(*Node)) {
if node == nil {
return
}

node.Left.TraverseFunc(f)
f(node)
node.Right.TraverseFunc(f)

}
f(node)完成啥功能?

写回答

1回答

ccmouse

2019-05-12

对于TraverseNode来说,它不知道f是干啥的。它只是负责对于所有的节点都调用一次f。它把遍历算法和具体对于每个节点做什么进行了区分。
对于Traverse来说,f就是起到了打印的作用。

0
0

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

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

5995 学习 · 1909 问题

查看课程