首页 > 服务端语言 > Go 入门教程 > 26 Go 语言中的数组

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

1. 数组的声明

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

代码示例

package main

import (
    "fmt"
)

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

执行结果

图片描述

2. 数组的比较

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

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

代码示例:

package main

import (
    "fmt"
)

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

执行结果

图片描述

3. 小结

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

  • 数组声明时就决定了长度,会自动初始化零值;
  • 数组可以使用...来自动初始化数组的长度;
  • 数组比较是否相等时必须是数组长度和值完全相同才会相等。
本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈