Go 中使用切片来实现动态数组的功能

简介: Go 中使用切片来实现动态数组的功能

在 Go 中,切片(slice)可以非常方便地实现动态数组的功能。以下是一些示例代码和说明:

  1. 创建动态数组:

    // 使用 make 创建一个初始容量为 0 的动态数组
    dynArray := make([]int, 0)
    
  2. 添加元素:

    // 使用 append 函数添加新元素
    dynArray = append(dynArray, 1, 2, 3)
    dynArray = append(dynArray, []int{
         4, 5, 6}...)
    
  3. 访问元素:

    fmt.Println(dynArray[0])  // 输出 1
    fmt.Println(dynArray[2])  // 输出 3
    
  4. 删除元素:

    // 删除索引为 1 的元素
    dynArray = append(dynArray[:1], dynArray[2:]...)
    
  5. 插入元素:

    // 在索引为 1 的位置插入新元素
    dynArray = append(dynArray[:1], append([]int{
         99}, dynArray[1:]...)...)
    
  6. 长度和容量:

    fmt.Println(len(dynArray)) // 输出动态数组的长度
    fmt.Println(cap(dynArray)) // 输出动态数组的容量
    
  7. 切片重分配:

    // 切片重分配到一个新的底层数组
    newArray := make([]int, len(dynArray), 2*cap(dynArray))
    copy(newArray, dynArray)
    dynArray = newArray
    

以上就是使用 Go 切片实现动态数组的一些基本操作。切片提供了非常灵活和高效的方式来管理可变大小的数据集合。通过 append 函数可以方便地添加新元素,通过切片操作可以删除、插入元素。同时,切片的自动扩容机制确保了动态数组的性能和内存使用效率。合理利用切片的特性,可以轻松地构建出功能强大的动态数组。

相关文章
|
3月前
|
Go
go语言数组与切片
go语言数组与切片
|
1天前
|
编译器 Go 索引
Go数组、多维数组和切片(动态数组),及常用函数len(),cap(),copy(),append()在切片中的使用
本文介绍了Go语言中数组、多维数组和切片(动态数组)的基本概念和操作,包括数组的定义、初始化、访问,多维数组的定义和访问,以及切片的创建、使用和扩容。同时,还讲解了切片中常用的函数len()、cap()、copy()和append()的使用方法。
|
1月前
|
Go
Go 1.21的新特性: 切片和映射
Go 1.21的新特性: 切片和映射
|
1月前
|
存储 Go
go 切片长度与容量的区别
go 切片长度与容量的区别
|
27天前
|
存储 缓存 Go
在 Go 中如何复制切片和映射?
【8月更文挑战第31天】
34 0
|
27天前
|
存储 算法 Go
|
27天前
|
存储 Go 数据处理
C 数组和 Go 切片的区别详解
【8月更文挑战第31天】
29 0
|
1月前
|
算法 搜索推荐 Unix
快速指南: Go 1.19功能
快速指南: Go 1.19功能
|
30天前
|
人工智能 编译器 Go
Go从入门到放弃之数组、切片
Go从入门到放弃之数组、切片
|
2月前
|
存储 Go
go切片和指针切片
go切片和指针切片
19 2