henryspace

记录精彩的程序人生 开始使用

Part 13 - Go 语言学习 - 指针接收者扩展应用

指针接收者扩展应用

  • 指针应用可以直接修改或者扩充对象的值
// 示例函数包
package util

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"
	"ging/util"
)

func main() {
	q := util.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())

	/*
	结果输出:
	1
	2
	false
	3
	true
	*/
}
评论
留下你的脚步