Go数组与切片

数组的声明方式

var arr []int var arr2 = [4]int{1,2,3,4} arr3 :=[...]int{2,3,4}

数组在赋值和函数调用时的形参都是值复制
当数组的长度小于4时,运行时在栈中初始化
当数组的长度大于4时,启动时在静态区初始化
切片的初始化
var slice1 []int var slice2 []int=make([]int,5) var slice3 []int=make([]int,5,6) slice4:=[]int{1,2,3,4}

切片的完整复制
//创建目标切片 nums1 :=make([]int,len(nums),cap(nums)) //将nums复制到nums1中 count:=copy(nums1,nums)

切片扩容后返回的地址不一定想等
可以用a=append(a,T)来保证其安全
关于go语言中的可比较性 切片,函数,map不可比较
关于map 【Go数组与切片】map并不支持并发的读写,但支持并发的读
负载因子的计算:负载因子=哈希表中的元素数量/桶数量

    推荐阅读