// SliceTest project main.go package main import ( "fmt" ) func main() { arr := [5]int{1, 2, 3, 4, 5} slice1 := arr[:3] //在现有数组上创建切片 slice2 := make([]int, 5, 10) //make创建,5为元素个数,10为最大元素个数(可以增加) slice3 := append(slice2, 1, 2) //增加一个或多个元素 slice4 := []int{1, 2, 3, 4, 5, 6} slice5 := append(slice1, slice2...) //直接添加一个切片需要加上... copy(slice2, slice1) //按较小的元素个数进行复制 fmt.Println("slice1:", slice1) fmt.Println("slice2:", slice2) fmt.Println("slice3:", slice3) fmt.Println("slice4:", slice4) fmt.Println("slice5:", slice5) fmt.Printf("len1:%d,cap1:%d\n", len(slice1), cap(slice1)) fmt.Printf("len2:%d,cap2:%d\n", len(slice2), cap(slice2)) fmt.Printf("len3:%d,cap3:%d\n", len(slice3), cap(slice3)) /* 输出: slice1: [1 2 3] slice2: [1 2 3 0 0] slice3: [1 2 3 0 0 1 2] slice4: [1 2 3 4 5 6] slice5: [1 2 3 0 0 0 0 0] len1:3,cap1:5 len2:5,cap2:10 len3:7,cap3:10 */ }
1、可以简单认为是长度可变的数组
2、动态增减元素是切片的特点