henryspace

记录精彩的程序人生 开始使用

Part 11 - Go 语言学习 - 面向对象

面向对象

  1. go语言仅支持封装,不支持继承和多态
  2. go语言没有class, 只有struct
  3. 值接收者和指针接收者
  • 要改变内容,必须使用指针接收者
  • 结构过大也考虑使用指针接收者
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()
}



评论
留下你的脚步
推荐阅读