go 切片循环,和追加切片元素
package main
import "fmt"
func main() {
//定义切片 :make 函数三个参数 1.切片类型 2.切片长度 3切片容量
slice := make([]int, 4, 20)
fmt.Println(slice)
fmt.Println("--------------------------------------------")
slice[0] = 5
slice[1] = 6
slice[2] = 5
slice[3] = 6
fmt.Println(slice)
//切片定义方式2
slice2 := []int{5, 6, 5, 6}
fmt.Println(slice2)
fmt.Println("--------------------------------------------")
//切片遍历的两种方式
for i := 0; i < len(slice); i++ {
fmt.Println(slice[i])
}
for _, v := range slice {
fmt.Println(v)
}
fmt.Println("--------------------------------------------")
//给slice2 切片追加元素
slice3 := append(slice2, 6, 6)
//底层原理:
//1.底层追加元素的时候对数组进行扩容,老数组扩容为新数组
//2.创建一个新数组,将老数组中的4,7,3复制到新数组中,在新数组中追加6,6
//3.slice3 底层数组指向的一个新数组,所以追加的元素不会影响slice2
fmt.Println(slice2)
fmt.Println(slice3)
slice4 := []int{8, 8}
slice2 = append(slice2, slice4...)
fmt.Println(slice2)
slice5 := make([]int, 10)
copy(slice5, slice2) //将slice2 复制到clice5
fmt.Println(slice5)
}

浙公网安备 33010602011771号