自定义堆栈Stack

自定义堆栈Stack,第1张

概述学习GO中自定义类型的定义,接口和方法的写法 测试用例: https://github.com/panyingyun/gostudy/blob/master/testStack.go package mainimport ( "fmt" "github.com/panyingyun/gostudy/stacker")func main() { a := stacker.NewSta

学习GO中自定义类型的定义,接口和方法的写法

测试用例: https://github.com/panyingyun/gostudy/blob/master/testStack.go

package mainimport (	"fmt"	"github.com/panyingyun/gostudy/stacker")func main() {	a := stacker.NewStack(2)	a.Push("Google")	a.Push(100)	a.Push([]int{1,2,3})	fmt.Println(a)	fmt.Println(a.Len())	fmt.Println(a.Cap())	for {		item,err := a.Pop()		if err != nil {			fmt.Println(err)			break		}		fmt.Println(item)	}}

stack定义: https://github.com/panyingyun/gostudy/blob/master/stacker/stack.go

package stackerimport (	"errors")type Stack struct {	st  []interface{}	len int	cap int}func NewStack(cap int) *Stack {	st := make([]interface{},cap)	return &Stack{st,cap}}func (s *Stack) Len() int {	return s.len}func (s *Stack) Cap() int {	return s.cap}func (s *Stack) Push(p interface{}) {	s.st = append(s.st,p)	s.len = len(s.st)	s.cap = cap(s.st)}func (s *Stack) Pop() (interface{},error) {	if s.len == 0 {		return nil,errors.New("Can't pop an empty stack")	}	s.len -= 1	out := s.st[s.len]	s.st = s.st[:s.len]	return out,nil}
总结

以上是内存溢出为你收集整理的自定义堆栈Stack全部内容,希望文章能够帮你解决自定义堆栈Stack所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1289923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存