15、扩展已有类型

一、通过别名方法,扩展已有类型

package op

// 定义了新类型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
}

 

二、通过组合方法,扩展已有类型

type myStructName struct {
    name *package.targetStruct
}

func (name *myStructName)funcName() {
    //.....扩展方法
}

 

三、通过内嵌方法,扩展已有类型

 

posted @ 2021-11-28 09:35  JaydenQiu  阅读(30)  评论(0)    收藏  举报