封装
1. 名字一般使用CamelCase
2. 首字母大写:public
3. 首字母小写: private
采用驼峰命名的方式,首字母大写表示public,小写表示private,公开和私有是相对于package包来说的,每个目录下只能有一个包,main包包含可执行程序入口。为结构定义的方法必须放在同一个包内,但是可以是不同的文件。
node.go的报名为tree
package tree
import "fmt"
type Node struct {
Value int
Left,Right *Node
}
func (node *Node) Traverse(){
if node == nil{
return
}
node.Left.Print()
node.Print()
node.Right.Print()
}
func (node Node) Print(){
fmt.Print(node.Value)
}
func CreateNode(value int) *Node {
return &Node{Value:value}
}
entry.go的报名为main
package main
import "fmt"
import "LearnGo/tree"
func main() {
var root tree.Node
root = tree.Node{Value:3}
root.Left = &tree.Node{}
root.Right = &tree.Node{5,nil,nil}
root.Right.Left = new(tree.Node)
root.Left.Right = tree.CreateNode(2)
root.Print()
fmt.Println()
root.Traverse()
}
包
- 为结构定义的方法必须放在同一个包内
- 可以使不同的文件
如何对已有的类进行扩充?
- 定义别名
- 使用组合