package main

import \"fmt\"

//面向对象
// go 语言 仅支持封装 不支持继承和多态
// go 语言 没有class  只有struct
type treeNode struct {
   value int
   left,right *treeNode
}

//go  没有构造函数  但是可以加工厂函数 来控制
// 返回局部变量的地址
func createNode(value int) *treeNode{
   return &treeNode{value:value}
}
// 怎么给结构写方法
func  (node treeNode)print(){
    fmt.Print(node.value)
}
//也可以这样定义
func print_1(node treeNode){
   fmt.Print(node.value)
}

func (node *treeNode) setValue(value int){
   node.value=value
}
func main() {
   // 结构的创建
   var root treeNode
   root = treeNode{value:3}
   root.left = &treeNode{}
   root.right = &treeNode{5,nil,nil}
   root.right.left =new(treeNode)
   nodes := []treeNode{
      {value:3},
      {},
      {6,nil,&root},
   }
   //调用方法
   root.print()
   print_1(root)
    root.left.setValue(4)
   root.left.print()

   fmt.Println(nodes)

}
收藏 打印