切片完结

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