From ca9bd89b9da21e3542c40a9e4efd613ac6e7cd58 Mon Sep 17 00:00:00 2001 From: nannanwu Date: Fri, 14 Nov 2025 20:55:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=87=E7=89=87=E5=AE=8C=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index c8f0781..a2e9c2d 100644 --- a/main.go +++ b/main.go @@ -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) }