zoukankan      html  css  js  c++  java
  • go语言数组

    Go 语言数组

    Go 语言提供了数组类型的数据结构。

    数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。

    相对于去声明 number0, number1, ..., number99 的变量,使用数组形式 numbers[0], numbers[1] ..., numbers[99] 更加方便且易于扩展。

    数组元素可以通过索引(位置)来读取(或者修改),索引从 0 开始,第一个元素索引为 0,第二个索引为 1,以此类推。

    img


    声明数组

    Go 语言数组声明需要指定元素类型及元素个数,语法格式如下:

    var variable_name [SIZE] variable_type
    

    以上为一维数组的定义方式。例如以下定义了数组 balance 长度为 10 类型为 float32:

    var balance [10] float32
    

    初始化数组

    以下演示了数组初始化:

    var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
    

    初始化数组中 {} 中的元素个数不能大于 [] 中的数字。

    如果忽略 [] 中的数字不设置数组大小,Go 语言会根据元素的个数来设置数组的大小:

     var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
    

    该实例与上面的实例是一样的,虽然没有设置数组的大小。

     balance[4] = 50.0
    

    以上实例读取了第五个元素。数组元素可以通过索引(位置)来读取(或者修改),索引从0开始,第一个元素索引为 0,第二个索引为 1,以此类推。

    img


    访问数组元素(索引)

    数组元素可以通过索引(位置)来读取。格式为数组名后加中括号,中括号中为索引的值。例如:

    var salary float32 = balance[9]
    

    以上实例读取了数组balance第10个元素的值。

    以下演示了数组完整操作(声明、赋值、访问)的实例:

    实例

    package main
    
    import "fmt"
    
    func main() {
       var n [10]int /* n 是一个长度为 10 的数组 */
       var i,j int
    
       /* 为数组 n 初始化元素 */        
       for i = 0; i < 10; i++ {
          n[i] = i + 100 /* 设置元素为 i + 100 */
       }
    
       /* 输出每个数组元素的值 */
       for j = 0; j < 10; j++ {
          fmt.Printf("Element[%d] = %d
    ", j, n[j] )
       }
    }
    

    以上实例执行结果如下:

    Element[0] = 100
    Element[1] = 101
    Element[2] = 102
    Element[3] = 103
    Element[4] = 104
    Element[5] = 105
    Element[6] = 106
    Element[7] = 107
    Element[8] = 108
    Element[9] = 109
    

    更多内容

    数组对 Go 语言来说是非常重要的,以下我们将介绍数组更多的内容:

    内容 描述
    多维数组 Go 语言支持多维数组,最简单的多维数组是二维数组
    向函数传递数组 你可以向函数传递数组参数

    Go 语言多维数组

    Go 语言支持多维数组,以下为常用的多维数组声明方式:

    var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type
    

    以下实例声明了三维的整型数组:

    var threedim [5][10][4]int
    

    二维数组

    二维数组是最简单的多维数组,二维数组本质上是由一维数组组成的。二维数组定义方式如下:

    var arrayName [ x ][ y ] variable_type
    

    variable_type 为 Go 语言的数据类型,arrayName 为数组名,二维数组可认为是一个表格,x 为行,y 为列,下图演示了一个二维数组 a 为三行四列:

    img

    二维数组中的元素可通过 a[ i ][ j ] 来访问。


    初始化二维数组

    多维数组可通过大括号来初始值。以下实例为一个 3 行 4 列的二维数组:

    a = [3][4]int{  
     {0, 1, 2, 3} ,   /*  第一行索引为 0 */
     {4, 5, 6, 7} ,   /*  第二行索引为 1 */
     {8, 9, 10, 11},   /* 第三行索引为 2 */
    }
    

    注意:以上代码中倒数第二行的 } 必须要有逗号,因为最后一行的 } 不能单独一行,也可以写成这样:

    a = [3][4]int{  
     {0, 1, 2, 3} ,   /*  第一行索引为 0 */
     {4, 5, 6, 7} ,   /*  第二行索引为 1 */
     {8, 9, 10, 11}}   /* 第三行索引为 2 */
    

    访问二维数组

    二维数组通过指定坐标来访问。如数组中的行索引与列索引,例如:

    val := a[2][3]
    或
    var value int = a[2][3]
    

    以上实例访问了二维数组 val 第三行的第四个元素。

    二维数组可以使用循环嵌套来输出元素:

    实例

    package main
    
    import "fmt"
    
    func main() {
       /* 数组 - 5 行 2 列*/
       var a = [5][2]int{ {0,0}, {1,2}, {2,4}, {3,6},{4,8}}
       var i, j int
    
       /* 输出数组元素 */
       for  i = 0; i < 5; i++ {
          for j = 0; j < 2; j++ {
             fmt.Printf("a[%d][%d] = %d
    ", i,j, a[i][j] )
          }
       }
    }
    

    以上实例运行输出结果为:

    a[0][0] = 0
    a[0][1] = 0
    a[1][0] = 1
    a[1][1] = 2
    a[2][0] = 2
    a[2][1] = 4
    a[3][0] = 3
    a[3][1] = 6
    a[4][0] = 4
    a[4][1] = 8
    

    Go 语言向函数传递数组

    如果你想向函数传递数组参数,你需要在函数定义时,声明形参为数组,我们可以通过以下两种方式来声明:

    方式一

    形参设定数组大小:

    void myFunction(param [10]int)
    {
    .
    .
    .
    }
    
    

    方式二

    形参未设定数组大小:

    void myFunction(param []int)
    {
    .
    .
    .
    }
    
    

    实例

    让我们看下以下实例,实例中函数接收整型数组参数,另一个参数指定了数组元素的个数,并返回平均值:

    实例

  • 相关阅读:
    python基础之元组、文件操作、编码、函数、变量
    python---基础之模块,列表,元组,字典
    python成长之路-----day1-----作业(登录程序和三级菜单)
    k8s的port、targetport、nodeport之间的区别
    查找并删除文件
    systemctl自定义service
    中标麒麟7.0源
    springboot问题,没有主清单属性
    iso搭建本地源
    添加路由
  • 原文地址:https://www.cnblogs.com/saoqiang/p/12459364.html
Copyright © 2011-2022 走看看