go 基础数组和切片
数组
//1、var定义
var arr1 [10]int
arr1[0] = 1
//自动推导
arr2 := [10]int{}
arr2[0] = 2
fmt.Println(arr1,arr2)
for k,v := range arr1{
fmt.Println(k,v)
}
切片 不定长数组,长度和容量
//不定长数组也叫切片 定义
name := []string{}
//追加数据,可以用append,不定长数组
name = append(name,"world")
fmt.Println(len(name),cap(name))
//切片和数组的关系
age := []int{1,2,3,4,5,6}
age2 := age[0:3]
fmt.Println(age2)
//修改age2的值会改变age的值
age2[0] = 100
fmt.Println("age2[0]修改后的age2:", age2)
fmt.Println("age2[0]修改后的age:", age)
//创建空切片并明确指定容量,这样可以提高预先效率
//创建一个容量为20,当前长度为0的int类型切片
age3 := make([]int,0,20)
age3 = append(age3,2)
age3[0] = 100
fmt.Println(len(age3),cap(age3))
//如果想让切片完全独立于原始数组,可以使用copy()函数
age4 := make([]int,10,20)
copy(age4,age3[:])
fmt.Println(age3,age4)