Go 语言中的数组

数组是一个可以存放相同数据类型数据的定长序列。由于数组是定长的,在使用场景并不丰富,所以在 Go 语言中通常使用的是切片(Slice)。想要使用切片,就先要了解数组,所以在本文先介绍 Go 语言中数组的使用。

 

1. 数组的声明

数组的声明形式形如var 数组名 [数组长度]数组类型,其中数组类型可以是数组本身,也就是数组类型的数组,这样就构成了多维数组。和变量的声明相同,数组在声明时会初始化变量类型的零值

代码示例

代码块
  • package main
  • 2
  • import (
  • 4        "fmt"
  • )
  • 6
  • func main() {
  • 8          var a [2]int
  • 9          var b [2][2]int
  • 10        var c = [2]int{1, 2}
  • 11        var d = [...]int{3, 4}
  • 12        fmt.Println("a的零值", a)
  • 13        fmt.Println("b的零值", b)
  • 14        fmt.Println("c的值", c)
  • 15        fmt.Println("d的值", d)
  • 16  }
  • 第 8 行:声明一个长度为2的一维数组。自动初始化为零值
  • 第 9 行:声明一个2行2列的二维数组。自动初始化为零值
  • 第 10 行:声明并定义一个长度为2,值为[1,2]的数组;
  • 第 11 行:使用 ... 表示根据数组后值的长度自动初始化长度。因为后面的值是 [3,4] 数组自动初始化长度为 2。

执行结果

图片描述

 

2. 数组的比较

在 Go 语言中判断数组是否相等需要比较两个部分。一个是数组的长度是否相等,另一个是数组中存放的值是否顺序和大小完全相同。只要这两个部分相等,则 Go 语言中的两个数组就是相等的。

Tips:Go 语言中只有类型相同的数组才可以互相比较,且数组没有大小的比较,只能比较是否相等。

代码示例:

代码块
  • 1  package main
  • 2
  • import (
  • 4            "fmt"
  • 5  )
  • 6
  • func main(){
  • 8           var a [2]int
  • 9           var c = [2]int{1, 2}
  • 10         var d = [...]int{1, 2}
  • 11         fmt.Println("a == c ? ", a == c)
  • 12         fmt.Println("c == d ?", c == d)
  • 13  }
  • 第 11 行:比较数组 a 和数组 b 是否相等。两个数组长度相同,是存储的值不同,所以不相等;
  • 第 12 行:比较数组 c 和数组 d 是否相等。两个数组长度相同,且存储的值也相通,所以相等。

执行结果

图片描述

 

3. 小结

本文主要介绍了Go语言中数组的使用,主要讲解了以下几点:

  • 数组声明时就决定了长度,会自动初始化零值;
  • 数组可以使用...来自动初始化数组的长度;
  • 数组比较是否相等时必须是数组长度和值完全相同才会相等。

文章来源于网络,侵删!

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!