zoukankan      html  css  js  c++  java
  • 从零开始学Go之容器(一):数组

    数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成

     

    声明:

    var 数组名 [数组长度]类型

    var a [10]int//第一个元素a[0],最后一个元素a[len(a)-1]

    数组长度在声明后不能改变,因为长度是类型的一部分。

    数组的下标是从0开始,到长度len-1为止,长度为3的数组下标对应0,1,2

     

    初始化:

    var 数组名 [数组长度]类型{初始化值列表}

    var a [3]int{1,2,3}
    var a [3]int{1,2}//a[2]=0
    var a [100]int{99:-1}//索引初始化,a[99]=-1
    var a [2]string{a:"a",b:"b"}//自己指定索引并初始化

    数组未初始化的值为自动初始化为默认值(零值)

    可以通过下标索引初始化,顺序无关,其余索引会自动初始化为默认值,在非数字类型的数组中,索引也可以自己指定。

     

    不定长数组:

    var 数组名 [...]类型

    var a [...]int{1,2}//此时长度为2

    不定长数组的长度会根据初始化值列表长度来计算

     

    数组比较:

    不同长度的数组之间不能比较,相同长度的数组之前只有所有元素的值和类型都相等才能相等

    a [3]int{1,2}
    b [2]int{1,2}
    c [2]int{1,2}
    fmt.Println(b==c)//结果为true
    //a==c //编译错误

     

    二维数组:

    var 数组名 [数组长度]数组类型

    var a [4][3]int//声明一个长度为3,高度为4的数组
    var a [2][2]int{{1,2},{3,4}}//2x2数组初始化

     

    数组遍历:

    有两种方法,一种是下标遍历,另一种是range遍历

    func main() {
     var team [3]string
     team[0] = "hammer"
     team[1] = "soldier"
     team[2] = "mum"//仿C的写法
     for i := 0; i < len(team); i++ {
      fmt.Println(team[i])
     }
    ​
     //go中的range方法
     for k, v := range team {
      fmt.Println(k, v)
     }
    }

    运行结果

    0 hammer

    1 soldier

    2 mum

    hammer

    soldier

    mum

  • 相关阅读:
    linux下文件夹的创建、复制、剪切、重命名、清空和删除命令
    Linux 删除文件夹和创建文件的命令
    linux下拷贝整个目录
    星云大师:这十句话 我受用一生
    dex
    瘋耔java语言笔记
    VCC_VID_VTT等的含义
    一位数码管引脚
    android从应用到驱动之—camera(2)---cameraHAL的实现
    android从应用到驱动之—camera(1)---程序调用流程[转]
  • 原文地址:https://www.cnblogs.com/VingB2by/p/11078999.html
Copyright © 2011-2022 走看看