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()
}
Golang 之 面向对象struct ,定义结构体方法(二)
最新推荐文章于 2024-04-25 20:12:07 发布