-
为什么要用切片?
- 数组容量固定,不能自动扩展;
- 值传递,数组作为函数传参的时候,将整个数据值拷贝一份给形参。
-
切片本质:不是一个数组的指针,是一种数据结构,用来 *** 作数组内部元素。
切片名[low,high,max]->low:起始下标位置;high:结束下标位置;len:high-low;cap:max-low。
-
创建切片:
make([]type,len,cap);*make([]type,len)*
;自动推导类型创建切片;注:make函数只能创建slice,map和channel,并且返回一个有初始值(非零)的对象;
-
切片传参为传引用;
-
向切片增加元素时,切片容量会自动增长,1024以下,以2倍速度增长;
-
copy(目标切片,源切片),对每个位置进行覆盖 *** 作;
-
创建方式:
var m map[int]string
->不能存储数据,=nilm := map[int]string{}
->能存储数据,=[]m:=make(map[int]string)
m:=make(map[int]string,容量)
-
用截取数组(切片)的方式初始化切片时,切片容量跟随原数组(切片);
type slice struct {
array unsafe.Pointer
len int
cap int
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)