在 Go 中,切片(slice)可以非常方便地实现动态数组的功能。以下是一些示例代码和说明:
创建动态数组:
// 使用 make 创建一个初始容量为 0 的动态数组 dynArray := make([]int, 0)
添加元素:
// 使用 append 函数添加新元素 dynArray = append(dynArray, 1, 2, 3) dynArray = append(dynArray, []int{ 4, 5, 6}...)
访问元素:
fmt.Println(dynArray[0]) // 输出 1 fmt.Println(dynArray[2]) // 输出 3
删除元素:
// 删除索引为 1 的元素 dynArray = append(dynArray[:1], dynArray[2:]...)
插入元素:
// 在索引为 1 的位置插入新元素 dynArray = append(dynArray[:1], append([]int{ 99}, dynArray[1:]...)...)
长度和容量:
fmt.Println(len(dynArray)) // 输出动态数组的长度 fmt.Println(cap(dynArray)) // 输出动态数组的容量
切片重分配:
// 切片重分配到一个新的底层数组 newArray := make([]int, len(dynArray), 2*cap(dynArray)) copy(newArray, dynArray) dynArray = newArray
以上就是使用 Go 切片实现动态数组的一些基本操作。切片提供了非常灵活和高效的方式来管理可变大小的数据集合。通过 append
函数可以方便地添加新元素,通过切片操作可以删除、插入元素。同时,切片的自动扩容机制确保了动态数组的性能和内存使用效率。合理利用切片的特性,可以轻松地构建出功能强大的动态数组。