• Golang 开发实战day03 - Arrays & Slices


    Golang 教程03 - Arrays,Slices

    Go语言中的数组和切片都是用于存储数据的类型,但它们之间存在一些重要的区别。了解这些区别对于有效地使用它们至关重要。

    1. Arrays 数组

    1.1 定义

    数组是一种固定大小的数据结构,用于存储相同类型的值。

    1.2 语法

    Go
    // 声明一个长度为 n 的数组,元素类型为 type
    var array [n]type
    
    // 初始化数组
    array := [n]type{value1, value2, ..., valueN}
    
    // 访问数组元素
    array[i] // 访问第 i 个元素
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.3 示例

    // 声明一个长度为 3 的 int 型数组并且初始化数组
    var ages [3]int = [3]int{20, 25, 30}
    
    // 声名一个长度为4的string型数组并初始化
    names := [4]string{"小叮当", "大雄", "静香", "小夫"}
    
    // 将“大雄”替换成“胖虎”
    names[1] = "胖虎"
    
    fmt.Println(ages, len(ages))
    fmt.Println(names, len(names))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    Output:

    在这里插入图片描述

    1.4 特点

    • 数组的大小是固定的,在声明时必须指定。
    • 数组元素是连续存储在内存中的。
    • 数组可以直接赋值给另一个数组,但前提是两个数组的长度和元素类型相同。

    2. Slices 切片

    2.1 定义

    切片是一种引用类型,它表示一段连续的数组元素。

    2.2 语法

    Go
    // 声明一个切片,元素类型为 type
    var slice []type
    
    // 初始化切片
    slice := make([]type, len, cap) // 创建一个长度为 len、容量为 cap 的切片
    slice := array[start:end] // 从数组 array 中截取一段切片,从 start 开始,到 end 结束 (不包括 end)
    
    // 访问切片元素
    slice[i] // 访问第 i 个元素
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.3 示例

    // 创建一个scores的分数数组
    var scores = []int{100, 25, 90, 88}
    
    // 获取1号位置元素
    scores[1] = 15
    
    // 增加数组元素
    scores = append(scores, 85)
    
    rangeOne := names[1:3]
    rangeTwo := names[2:]
    rangeThree := names[:3]
    
    // 打印切片元素
    fmt.Println(scores, len(scores))
    fmt.Println(scores, len(scores))
    fmt.Println(rangeOne, rangeTwo, rangeThree)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    Output:

    在这里插入图片描述

    2.4 特点

    • 切片的长度是可变的,可以使用 len() 函数获取。
    • 切片的容量是指切片底层数组的容量,可以使用 cap() 函数获取。
    • 切片可以通过 append() 函数追加元素,也可以通过 copy() 函数复制切片。

    3. 对比

    特性数组切片
    大小固定可变
    容量固定可变
    存储连续存储引用类型
    初始化使用 []type{value1, value2, …, valueN}使用 make([]type, len, cap) 或 array[start:end]
    赋值直接赋值需使用 copy() 函数
    访问元素使用 array[i]使用 slice[i]

    4. 总结

    数组和切片都是 Go 语言中重要的数据结构。数组是一种固定大小的数据结构,用于存储相同类型的值。切片是一种引用类型,它表示一段连续的数组元素。了解数组和切片的区别,可以有效地使用它们来存储和处理数据。

    在这里插入图片描述

    感谢观看,下一期内容标准library

  • 相关阅读:
    2021了,真的不要再说 Node.js 是一门编程语言了
    Facebook广告账户被封?这份防封及申诉指南收好
    使用PCL进行ICP点云配准
    电动变焦镜头的控制
    CI/CD持续集成/持续部署
    Clickhouse 原理
    客户案例 | 保险科技日新月异,打造“一站式”数字化转型解决方案
    Python的基础语法(十三)
    Linux终端与交互式Bash
    ​外汇诈骗案频发,黑平台都盯上了这类人
  • 原文地址:https://blog.csdn.net/u014739136/article/details/136629650