stack

package
v0.0.0-...-63b2ac5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 13, 2019 License: GPL-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Stack

type Stack []interface {
}

由于Go语言的所有类型都实现了空接口,因此任意类型的值都可以存储在Stack中。 .Go语言的空接口扮演的是Java中的Object或者C/C++中的void*类型一样的角色。

func (Stack) Cap

func (stack Stack) Cap() int

通常所有的自定义数据集合类型(包括我们自己实现的以及Go语言标准库中的自定义数据集合类型)都应实现Len()和Cap()方法。 *

容量大小.

func (Stack) Len

func (sstack Stack) Len() int

*

sstack 称为接收器.接收器是按值传递的

func (*Stack) Pop

func (sstack *Stack) Pop() (interface{}, error)

*

在其他语言中,接收器一般被称为(java)this或(python)self,使用这种称谓在Go语言中也没问题,但被认为是不太好的Go语言风格。

func (*Stack) Push

func (sstack *Stack) Push(item ...interface{})

*

如果我们要修改接收器,就必须将接收器设为一个指针

Go语言中的指针除了不支持指针运算之外(其实也不需要),其他的与C和C++里的是一样的。 hx940929-Note: 因为默认接收器函数是按值传递,那么如果不用指针,就会将原来的值(对象)拷贝一份到这个函数体内进行. 这里有两个需要注意的问题:

1.对该值的任何修改,只是在函数内的副本进行,不会影响到函数的调用者所使用的值(对象)
2.如果该值是一个大对象,那么在进行内存拷贝的时候,浪费性能和内存空间.效率低.

使用指针,就不会出现内存拷贝的问题,但是会有一个问题,就是允许函数内对值的任意修改.

func (Stack) Top

func (sstack Stack) Top() (interface{}, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL