go语言学习-数组, slice和map
数据结构 数组 slice map 数组为值传递,当赋值给另外一个变量的时候是将值全部都copy,存一个副本,改变副本的值不会改变原有数组。slice为指针传递,改变值会改变原有slice中存的值 数组 数组定义后 长度固定 长度获取: len() 函数 所有的值类型变量在赋值,和作为参数传递时都将产生一次复制动作。 go数组是一个值类型,在函数体中无法修改传入的数组的内容,因为函数内操作的只是所 传入数组的一个副本 在数组中类型和长度共同确定一个数组类型,也就是说[5]int 和[10]int 不是一个类型 创建 声明: var myArray [5]int 推导: myArray := [3]int{1, 2, 3} 省略方式: myArray := [...]int{1,2,3} slice 切片 创建 从数组上切一片, slice1 = myArray[:5] 使用make, slice2 := make([]int, 5) 默认方式: slice3 := []int{1, 2, 3, 4, 5}, 事实上回创建一个匿名数组,不需要我们管 从切片上切一片: slice4 = slice1[:7] // 可以超过原有len(),但是不能超过cap(),多出来的部分补上零值(0) 添加 append 使用 append 添加元素: mySlice2 := []int{8, 9,