Go内置函数
append
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延迟函数中调用