Go-切片
切片的长度、容量
1 package main 2 3 import "fmt" 4 5 func main() { 6 a := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 7 s1 := a[:] 8 fmt.Println("s1=", s1) 9 fmt.Printf("len=%d, cap=%d\n", len(s1), cap(s1)) 10 11 s2 := a[3:6:7] 12 fmt.Println("s2=", s2) 13 fmt.Printf("len=%d, cap=%d\n", len(s2), cap(s2)) 14 15 s3 := a[:6] 16 fmt.Println("s3=", s3) 17 fmt.Printf("len=%d, cap=%d\n", len(s3), cap(s3)) 18 19 s4 := a[3:] 20 fmt.Println("s4=", s4) 21 fmt.Printf("len=%d, cap=%d\n", len(s4), cap(s4)) 22 }
切片的copy
1 package main 2 3 import "fmt" 4 5 func main() { 6 srcSlice := []int{1, 2, 3, 4} 7 dstSlice := []int{1, 1, 1, 1} 8 9 copy(dstSlice, srcSlice) 10 fmt.Println("dst = ", dstSlice) 11 }
切片的append特点
1 package main 2 3 import "fmt" 4 5 func main() { 6 s := make([]int, 0, 1) 7 oldCap := cap(s) 8 fmt.Println("s= ", s) 9 fmt.Println("oldCap= ", oldCap) 10 11 s = append(s, 1) 12 fmt.Println("s= ", s) 13 fmt.Println("1 newCap= ", cap(s)) 14 15 s = append(s, 2) 16 fmt.Println("s= ", s) 17 fmt.Println("2 newCap= ", cap(s)) 18 19 s = append(s, 3) 20 fmt.Println("s= ", s) 21 fmt.Println("3 newCap= ", cap(s)) 22 23 // s = append(s, 4) 24 // fmt.Println("s= ", s) 25 // fmt.Println("4 newCap= ", cap(s)) 26 }

浙公网安备 33010602011771号