• Go 语言数组基础教程 - 数组的声明、初始化和使用方法


    数组用于在单个变量中存储相同类型的多个值,而不是为每个值声明单独的变量。

    声明数组

    在Go中,有两种声明数组的方式:

    1. 使用var关键字:

    语法

    var array_name = [length]datatype{values} // 这里定义了长度

    或者

    var array_name = [...]datatype{values} // 这里长度是隐含的

    1. 使用:=符号:

    语法

    array_name := [length]datatype{values} // 这里定义了长度

    或者

    array_name := [...]datatype{values} // 这里长度是隐含的

    注意:长度指定了数组中要存储的元素数量。在Go中,数组具有固定的长度。数组的长度可以通过一个数字来定义,也可以是隐含的(这意味着编译器根据值的数量来决定数组的长度)。

    数组示例
    这个示例声明了两个具有定义长度的数组(arr1和arr2):

    package main
    
    import "fmt"
    
    func main() {
      var arr1 = [3]int{1, 2, 3}
      arr2 := [5]int{4, 5, 6, 7, 8}
    
      fmt.Println(arr1)
      fmt.Println(arr2)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    输出:

    [1 2 3]
    [4 5 6 7 8]
    
    • 1
    • 2

    示例
    这个示例声明了两个隐含长度的数组(arr1和arr2):

    package main
    
    import "fmt"
    
    func main() {
      var arr1 = [...]int{1, 2, 3}
      arr2 := [...]int{4, 5, 6, 7, 8}
    
      fmt.Println(arr1)
      fmt.Println(arr2)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    输出:

    [1 2 3]
    [4 5 6 7 8]
    
    • 1
    • 2

    示例
    这个示例声明了一个字符串数组:

    package main
    
    import "fmt"
    
    func main() {
      var cars = [4]string{"Volvo", "BMW", "Ford", "Mazda"}
      fmt.Print(cars)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    输出:

    [Volvo BMW Ford Mazda]

    访问数组元素

    您可以通过引用索引号来访问特定的数组元素。

    在Go中,数组索引从0开始。这意味着[0]是第一个元素,[1]是第二个元素,依此类推。

    示例

    这个示例展示了如何访问prices数组中的第一个和第三个元素:

    package main
    
    import "fmt"
    
    func main() {
      prices := [3]int{10, 20, 30}
    
      fmt.Println(prices[0])
      fmt.Println(prices[2])
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    输出:

    10

    30

    更改数组元素

    您还可以通过引用索引号来更改特定数组元素的值。

    示例

    这个示例展示了如何更改prices数组中第三个元素的值:

    package main
    
    import "fmt"
    
    func main() {
      prices := [3]int{10, 20, 30}
    
      prices[2] = 50
      fmt.Println(prices)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    输出:

    [10 20 50]

    数组初始化

    如果数组或其元素在代码中没有被初始化,它将被分配其类型的默认值。

    提示:int的默认值是0,string的默认值是""。

    示例

    package main
    
    import "fmt"
    
    func main() {
      arr1 := [5]int{}           // 未初始化
      arr2 := [5]int{1, 2}       // 部分初始化
      arr3 := [5]int{1, 2, 3, 4, 5} // 全部初始化
    
      fmt.Println(arr1)
      fmt.Println(arr2)
      fmt.Println(arr3)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    输出:

    [0 0 0 0 0]

    [1 2 0 0 0]

    [1 2 3 4 5]

    仅初始化特定元素

    也可以仅初始化数组中的特定元素。

    示例

    这个示例仅初始化数组的第二和第三个元素:

    package main
    
    import "fmt"
    
    func main() {
      arr1 := [5]int{1: 10, 2: 40}
    
      fmt.Println(arr1)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    输出:

    [0 10 40 0 0]

    示例解释

    上面的数组有5个元素。

    1:10 表示:将10赋值给数组索引1(第二个元素)。

    2:40 表示:将40赋值给数组索引2(第三个元素)。

    查找数组的长度

    使用len()函数可以找到数组的长度:

    示例

    package main
    
    import "fmt"
    
    func main() {
      arr1 := [4]string{"Volvo", "BMW", "Ford", "Mazda"}
      arr2 := [...]int{1, 2, 3, 4, 5, 6}
    
      fmt.Println(len(arr1))
      fmt.Println(len(arr2))
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    输出:

    4
    6
    
    • 1
    • 2

    最后

    为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

    看完如果觉得有帮助,欢迎点赞、收藏关注

    在这里插入图片描述

  • 相关阅读:
    Idea_最右侧常用栏中没有Maven选项
    2021 年的 Flutter 状态管理:如何选择?
    Flutter高仿微信-第42篇-创建群
    《Mybatis 手撸专栏》第9章:细化XML语句构建器,完善静态SQL解析
    机器人(含自动驾驶汽车)成本和电脑手机相比有哪些差异化
    Python 视频编辑教程之用几行 Python 代码自动创建 NBA 集锦,利用开源计算机视觉模型生成篮球亮点
    wangeditor 编辑器图片上传遇到的问题: u.upload.addEventListener is not a function
    Java关键字
    如何用明细数据批量制作卡片
    #Powerbi 10分钟,理解 Rankx 排名函数
  • 原文地址:https://blog.csdn.net/2302_76489021/article/details/134473818