package main import "fmt" func f1() { // 将切片b的元素添加到切片c之后 // 定义数组 a := [...]int{1, 3, 5, 7, 9} // 切片 b := a[:2] // 1 3 c := a[3:] // 7 9 fmt.Printf("b: %v\n", b) fmt.Printf("c: %v\n", c) c = append(c, b...) fmt.Printf("c: %v\n", c) } func f2() { // 复制切片a的元素到新的切片b上 var a = []int{1, 2, 4} b := make([]int, len(a)) copy(b, a) fmt.Printf("b: %v\n", b) } func f3() { // 删除位于索引i的元素 i=3 var a = []int{2, 4, 6, 8, 10, 12} a = append(a[:3], a[4:]...) fmt.Printf("a: %v\n", a) } func f4() { // 切除切片a中从索引i到j位置的元素 2-4 var a = []string{"a", "b", "c", "d", "e", "f", "g", "h"} a = append(a[:2], a[5:]...) fmt.Printf("a: %v\n", a) } func f5() { // 在索引i的位置插入元素x i=3 x=100 a := []int{1, 3, 5, 7, 9, 10} a = append(a[:3], append([]int{100}, a[3:]...)...) fmt.Printf("a: %v\n", a) } func f6() { // 在索引i的位置插入长度为j的新切片 i = 2 j = 3 a := []int{1, 2, 3, 4, 5} a = append(a[:2], append(make([]int, 3), a[2:]...)...) fmt.Printf("a: %v\n", a) } func f7() { // 在索引i的位置插入切片b的所有元素 b = []int{100, 200, 300} a := []int{1, 2, 3, 4, 5} a = append(a[:2], append([]int{100, 200, 300}, a[2:]...)...) fmt.Printf("a: %v\n", a) } func f8() { // 取出位于切片a最末尾的元素x a := []int{1, 3, 5, 7, 9, 11, 13} x := a[len(a)-2 : len(a)-1] fmt.Printf("x: %v\n", x) } func f9() { // 将元素x追加到切片a a := []int{1, 2, 3, 4, 5} a = append(a, 10) fmt.Printf("a: %v\n", a) } func main() { f1() fmt.Println("========") f2() fmt.Println("=========") f3() fmt.Println("=========") f4() fmt.Println("=========") f5() fmt.Println("=========") f6() fmt.Println("=========") f7() fmt.Println("=========") f8() fmt.Println("=========") f9() } # 输出结果: b: [1 3] c: [7 9] c: [7 9 1 3] ======== b: [1 2 4] ========= a: [2 4 6 10 12] ========= a: [a b f g h] ========= a: [1 3 5 100 7 9 10] ========= a: [1 2 0 0 0 3 4 5] ========= a: [1 2 100 200 300 3 4 5] ========= x: [11] ========= a: [1 2 3 4 5 10]