Go内置函数

go语言中的append函数作用是在切片变量的后面追加新的数据,然后返回新的切片变量

func append(slice []Type, elems ...Type) []type

slice为需要追加的源切片,elems为可变参数列表,返回值为追加后的切片

在调用此函数时,通常需要以slice接收追加后的返回切片,否则slice仍为追加前的数据

copy

copy函数把slice源的数据复制到目的切片中,需要注意的是,copy不会主动的扩展目的切片的容量,在目的slice填充满之后会舍弃超出的部分,返回的是复制成功的元素个数

 func copy(dst, src [] Type) int

若目的slice原来有元素,则会被覆盖掉

delete

delete函数用于删除map中对应key的键值对,如果map中不存在该key,则什么也不做

func delete(m map[Type]Type1, key Type)

len

len函数用来获取字符串,切片,数组,通道,字典类型变量的内容长度,不同的类型,长度的计算规则不一致。对于切片,字典,数组,通道类型的变量,他们中的每一个元素就是一个长度。string类型的变量,每一个字节都是一个长度,中文字在utf8编码中占三个字节,故len获取string类型长度时,每一个汉字都是三个长度。

func len(v Type) int

len计算的是变量已有数据的内容长度,并非是变量的容量。

如果v是nil,则len(v)为0

cap

cap函数用来计算切片,通道,数组类型变量的容量,即这个容器最多能装多少元素。

func cap(v Type) int

如果v是nil,则cap(v) 容量获取到的是0

new

new函数用来创建某一个类型的指针型对象,理论上,只要一个数据类型能够被访问到,就能用new函数来创建指针类型的对象。返回值是一个指向新分配的type类型的零值的指针。

func new(Type) *Type

在Go语言中,如果使用new创建chan类型的指针对象,在使用之前仍然需要使用make函数来初始化chan的容量

new函数创建对象与直接使用struct{}创建的对象的区别是,前者为指向对象的一个指针,后者创建的是对象引用本身。

make

make函数也用于内存分配,和new不同的地方在于,make函数只能用于chan,map和切片三种类型的创建,返回值就是对象本身,因为这三类数据结构本身就是引用类型,必须要初始化

func make(t Type, size ...IntegerType) Type

close

func close(c chan<- Type)

close函数用于关闭一个非只读的管道。

close方法应该由管道的数据发送一方调用。

当最后一个发送的值被从管道中接收之后,后面的所有值接收都会非阻塞直接返回,返回值为元素类型的零值。

如果chan已经关闭,则x,ok := <- chan 中,ok为false



complex

complex 用于创建一个复数并返回

func complex(r,i FloatType) ComplexType

参数列表中r 为复数的实部,i 表示为复数的虚部

real

func real(c ComplexType) FloatType

real函数用于获取一个复数的实部

imag

func imag(c ComplexType) FloatType

imag函数用于获取一个复数的虚部

panic

panic函数表示程序中非常严重,不可恢复的错误,与java中的 try{} catch{} 类似。

panic异常被抛出之后,会一层一层的上传至最外层,直至程序崩溃

recover

recover函数用于捕获程序中抛出的panic,recover函数只能在defer延迟函数中调用