学习golang(day 3)- 数组、切片 2022-05-17 22:08:00 编程 golang 暂无评论 292 次阅读 1272字 修改时间:2022-05-17 23:27:43 # 数组 **声明数组** var variable_name [SIZE] variable_type **初始化数组** - 方式1,定长 ```go var a = [3]int{1, 2, 3} b := [3]int{3, 2, 1} ``` - 方式2,不定长 ```go c := [...]int{3, 2, 1} ``` ------------ # 切片 由于数组是不可变的,切片的底层还是数组,只不过是可变长度的数组,自动扩容 **声明** ```go // 声明一个空切片 var a = []int{} b := []int{} ``` **初始化** ```go // 直接初始化 var a = []int{1, 2, 3} b := []int{3, 2, 1} // 从数组中初始化 a := [3]int{1, 2, 3} b := a[2:] // : 可以指定开始、结束下标,只写一个:,代表全部 c := b[1:2] ``` ------------ #len cap函数 - len()函数获取数组的长度 - cap()函数获取数组的容量 ```go b := []int{3, 2, 1} fmt.Printf("len(b): %v\n", len(b)) // 3 fmt.Printf("cap(b): %v\n", cap(b)) // 3 ``` ------------ # 遍历 - 通过for循环获取下标遍历 ```go a := []int{1, 2, 3} for i := 0; i < len(a); i++ { fmt.Println(a[i]) } ``` - 通过for range 遍历 ```go a := []int{1, 2, 3} for index, i := range a { fmt.Println(index, i) } ``` ------------ #appen方法 ```go s1 := []int{} s1 = append(s1, 1, 2, 3, 4, 5) s2 := append(s1[:3], s1[4:]...) //删除4的索引,移位法 fmt.Printf("s1: %v\n", s2) ``` ------------ #copy方法 **copy(target,source)** 注:make方法用来分配内存,后面再记录具体用法 ```go a := []int{1, 2, 3} b := make([]int, 3) copy(b, a) fmt.Printf("b: %v\n", b) ``` 标签: golang
评论已关闭