版权声明:本文为博主原创文章,转载文章须附上文章来源与作者。 https://blog.csdn.net/ChangerJJLee/article/details/80961108
package main
import "fmt"
type treeNode struct {
value int
left, right * treeNode
}
// 给结构体定义打印方法,其中(node treeNode)表示该方法的接受者是那个结构体
func (node treeNode) print() {
fmt.Println(node.value)
}
// 给结构体定义设置值方法
func (node *treeNode) setNode(value int) {
node.value = value
}
func createNode(val int) *treeNode {
return &treeNode{ value: val}
}
func main() {
var root treeNode
root = treeNode{ value: 3}
root.left = &treeNode{}
root.right = &treeNode{5,nil,nil}
root.right.left = new(treeNode)
root.left.right = createNode(2)
root.print()
root.setNode(1)
root.print()
// Go 自动处理方法调用时的值和指针之间的转化。你可以使
// 用指针来调用方法来避免在方法调用时产生一个拷贝,或者
// 让方法能够改变接受的数据。
root.left.print()
root.right.print()
}