go 语言切片进阶

使用 make 函数创建切片

语法 make([]类型,长度,容量)

func main() {
	var arr = make([]int, 5, 10)
	fmt.Printf("%d--%d", len(arr), cap(arr))
}

使用  append() 函数对切片进行扩容

func main() {
	var arr = make([]int, 5, 10)
	// 使用 append 函数添加元素
	arr = append(arr, 1, 2, 3)
	for _, v := range arr {
		fmt.Println(v)
	}
	// 长度和容量发生了变化
	fmt.Printf("%d--%d", len(arr), cap(arr))
}

使用 copy 复制切片

func main() {

	var arr = make([]int, 5, 10)
	// 引用类型的例子
	// var arr2 = arr
	// arr2[0] = 100
	// for _, v := range arr {
	// 	fmt.Println(v)
	// }
	var arr3 = make([]int, 5, 10)
	// 使用 copy 的例子
	copy(arr3, arr)
	arr3[0] = 100
	for _, v := range arr {
		fmt.Println(v)
	}
}

删除切片元素

可以使用 append 函数删除切片元素

// 封装一个删除函数
func deleteSlice(selice []int, index int) []int {
	selice = append(selice[:index], selice[index+1:]...)
	return selice
}

func main() {
	var arr = []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
	arr = deleteSlice(arr, 3)
	for _, v := range arr {
		fmt.Println(v)
	}
}