包
- 为结构定义的方法必须放在包内
- 可以是不同文件
组合
type myNode struct {
node *tree.Node
}
func (node *myNode) after() {
if node == nil || node.node == nil {
return
}
left := myNode{node.node.Left}
right := myNode{node.node.Right}
left.after()
right.after()
node.node.Print()
}
别名
type Queue []int
func (q *Queue) Push(value int) {
*q = append(*q, value)
}
func (q *Queue) Pop() {
*q = (*q)[1:]
}
func (q *Queue) IsEmpty() bool {
return len(*q) == 0
}
func (q *Queue) Front() int {
return (*q)[0]
}