面向对象
- go 语言仅支持封装,不支持继承和多态
- go 语言没有 class, 只有 struct
- 值接收者和指针接收者
- 要改变内容,必须使用指针接收者
- 结构过大也考虑使用指针接收者
package main
import (
"fmt"
)
// 定义结构体
type treeNode struct {
Value int
Left, Right *treeNode
}
// 打印值
func (tree *treeNode) print() {
fmt.Println(tree.Value)
}
//设置值
func (tree *treeNode) setValue(value int) {
tree.Value = value
}
// 遍历值
func (tree *treeNode) traverse() {
if tree == nil {
return
}
tree.Left.traverse()
tree.print()
tree.Right.traverse()
}
func main() {
var root treeNode
root = treeNode{Value:3}
root.Left = &treeNode{}
root.Right = &treeNode{5, nil, nil}
root.Right.Right.setValue(4)
root.traverse()
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于