Go 面向对象

79 阅读1分钟
  • Go语言仅支持封装 不支持继承和多态
  • 只有struct 没有class
type treeNode struct {
   value       int
   left, right *treeNode
}

// 给结构体定义方法
func (node treeNode) print() {
   fmt.Println(node.value)
}

// 使用指针传递
func (node *treeNode) setValue(v int) {
   node.value = v
}

func main() {
   // var root treeNode
   root := treeNode{value: 3}
   root.left = &treeNode{}
   root.right = &treeNode{6, nil, nil}
   root.right.left = new(treeNode)
}

封装

  • 使用命名来控制访问
  • 首字母大写 public
  • 首字母小写 private
  • 相对于包来说