Go扩展已有类型

扩充系统或第三方的类型
- 定义别名
- 使用组合

定义别名

example:

type myStructName struct {
    name *package.targetStruct
}
func (name *myStructName)funcName() {
    .....扩展方法
}

使用组合

example:

package Queue

type queue []int

func (q *queue) Push(value int) {
    *q = append(*q, value)
}

func (q *queue) Pop() int {
    head := (*q)[0]
    *q = (*q)[1:]
    return head
}

func (q *queue) isEmpty() bool {
    return len(*q) == 0
}

猜你喜欢

转载自blog.csdn.net/YeYuLuoJin/article/details/81394573