- 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
- 相对于包来说