1、len()
func len(v Type) int
函数len返回v的长度
数组:v中元素的数量 数组指针:*v中元素的数量(v为nil时panic) 切片、映射:v中元素的数量;若v为nil,len(v)即为零 字符串:v中字节的数量 通道:通道缓存中队列(未读取)元素的数量;若v为 nil,len(v)即为零
2、new()
func new(Type) *Type
用来分配内存,主要用来分配值类型
3、make()
func make(Type, size IntegerType) Type
用来分配内存,主要用来分配引用类型
切片: size指定了其长度。该切片的容量等于其长度。切片支持第二个整数实参可用来指定不同的容量;它必须不小于其长度,因此 make([]int, 0, 10) 会分配一个长度为0,容量为10的切片。 映射: 初始分配的创建取决于size,但产生的映射长度为0。size可以省略,这种情况下就会分配一个小的起始大小。 通道:
通道的缓存根据指定的缓存容量初始化。若 size为零或被省略,该信道即为无缓存的。
4、cap()
func cap(v Type) int
内建函数cap返回v的容量,这取决于具体类型:
数组:v中元素的数量 数组指针:*v中元素的数量(v为nil时panic) 切片、映射:v中元素的数量;若v为nil,len(v)即为零 字符串:v中字节的数量 通道:通道缓存中队列(未读取)元素的数量;若v为 nil,len(v)即为零
5、append()
func append(slice []Type, elems ...Type) []Type
内建函数append将元素追加到切片的末尾。若它有足够的容量,其目标就会重新切片以容纳新的元素
否则,就会分配一个新的基本数组。append返回更新后的切片,因此必须存储追加后的结果
6、copy()
func copy(dst, src []Type) int
内建函数copy将元素从来源切片复制到目标切片中,也能将字节从字符串复制到字节切片中。
copy返回被复制的元素数量,它会是len(src)和len(dst)中较小的那个,来源和目标的底层内存可以重叠