一、如何扩充系统类型或者别人的类型
1.定义别名
示例1:
type MyTreeNode struct {
node *tree.Node
}
func (myNode *MyTreeNode) postOrder(){
if myNode == nil || myNode.node == nil {
return
}
left := MyTreeNode{myNode.node.Left}
left.postOrder()
right := MyTreeNode{myNode.node.Right}
right.postOrder()
myNode.node.Print()
}
2.使用组合
示例2:
package queue
type Queue []int
func (q *Queue) Push(v int){
*q = append(*q, v)
}
func (q *Queue) Pop() int {
head := (*q)[0]
*q = (*q)[1:]
return head
}
func (q *Queue) IsEmpty() bool{
return len(*q) == 0
}