go语言仅支持封装,不支持集成和多态~
go语言没有class,只有struct
1.结构的定义
type treeNode struct{
value int
left,right *treeNode
}
2.结构的实例化
//使用自定义工厂函数,返回局部变量的地址
func createNode(value int) *treeNode{
return &treeNode{value:value}
var root treeNode
fmt.Println(root) //{0 <nil> <nil>}
//1.
root=treeNode{value:3}
//2.由于left是指针,所以取地址~
root.left=&treeNode{} //0
//3.由于right是指针,所以取地址~
root.right=&treeNode{5,nil,nil}
//4.
root.right.left=new(treeNode) //0
//5.
root.left.right=createNode(2)
}
3.为结构定义方法
func (node treeNode) print(){
fmt.Println(node.value)
}
func main(){
root.print()
}