切片完结

This commit is contained in:
2025-11-14 20:55:28 +08:00
parent 6186163dbb
commit ca9bd89b9d

46
main.go
View File

@@ -1,21 +1,43 @@
package main
import "fmt"
import (
"fmt"
)
func main() {
//直接创建切片 切片类型 切片长度 切片容量
slice := make([]int, 10, 20)
fmt.Println(slice)
fmt.Println("切片长度:", len(slice))
fmt.Println("切片容量:", cap(slice))
slice[0] = 66
slice[1] = 88
fmt.Println("slice", slice)
//定义数组
var intarr = [6]int{1, 2, 3, 4, 5, 6}
slice := intarr[2:5]
fmt.Println("intarr:", intarr)
fmt.Println("slice:", slice)
fmt.Println("slice len:", len(slice))
fmt.Println("slice cap:", cap(slice))
//定义切片
var slice2 = intarr[1:2]
slice2[0] = 66
fmt.Println("intarr", intarr)
fmt.Println("slice2", slice2)
fmt.Printf("数组中下标为3位置的地址%p\n", &intarr[3])
fmt.Printf("切片中下标为1位置的地址%p\n", &slice[1])
i := 10
//底层追加元素的时候进行扩容,老数组扩容为新数组
slice3 := append(slice2, i)
fmt.Println("slice3", slice3)
//修改切片位置1的数值
slice[1] = 16
fmt.Println("intarr:", intarr)
fmt.Println("slice:", slice)
//给自己追加
//底层是新数组,不能直接维护,需要通过切片间接维护操作
slice3 = append(slice3, 11)
fmt.Println("slice3", slice3)
//...代表追加是是一个切片
slice3 = append(slice3, slice2...)
fmt.Println("slice3", slice3)
//拷贝
copy(slice3, slice)
fmt.Println("slice3", slice3)
}