5.3 扩展已有类型
一、扩充已有类型
定义别名:最简单
// queue.go 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 } // 主函数 package main import ( "fmt" "imooc-learn/4/queue" ) func main() { q := queue.Queue{1} q.Push(2) q.Push(3) fmt.Println(q.Pop()) fmt.Println(q.Pop()) fmt.Println(q.IsEmpty()) fmt.Println(q.Pop()) fmt.Println(q.IsEmpty()) }使用组合:最常用
// 对原有类进行引入 type myTreeNode struct { node *tree.TreeNode } // 添加内容,组合使用 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() }
Last updated
Was this helpful?