Go 语言数组

Go 语言的数组是一种数据结构,用于存储固定数量的相同类型元素。数组中的每个元素都有一个索引,可以通过索引来访问和修改数组中的元素。数组在内存中是连续存储的,这使得数组元素可以通过索引快速访问。

数组的声明与初始化

在 Go 中,数组的声明与初始化方式有多种。你可以通过指定数组的长度和元素类型来创建一个数组。

直接声明与初始化

上述代码声明了一个包含5个整数的数组 a。默认情况下,数组中的所有元素都会被初始化为该类型的零值,对于整数来说,零值就是0。

使用大括号初始化

你也可以在声明数组时直接使用大括号提供初始值:

这样就创建了一个包含5个整数的数组 b,其中的元素分别是1、2、3、4、5。

省略长度

如果在大括号中提供了初始值,那么可以省略数组的长度声明:

这里,编译器会根据提供的初始值的数量自动推断数组的长度,因此数组 c 也是包含5个整数的数组。

访问数组元素

一旦声明了数组,就可以通过索引来访问或修改其元素。数组的索引从0开始计数。

-- -------------------- ---- -------
------- ----

------ -----

---- ------ -
    --- - ------
    ---- - -
    ---- - -
    ---- - -
    ---- - -
    ---- - -
    
    ----------------- -- ----
    ----------------- -- ----
-

在上述示例中,我们首先将数组 a 的各个元素赋值,然后分别输出了第一个和最后一个元素。

多维数组

Go 语言支持多维数组,最常见的是二维数组。多维数组实际上是一个数组的数组。

声明与初始化

声明和初始化二维数组的方法类似于一维数组,只是需要提供更多的维度信息。

这行代码声明了一个4行5列的二维整数数组。你可以通过嵌套索引来访问或修改数组中的元素。

这里我们设置了二维数组中几个特定位置的值。

使用大括号初始化

同样地,二维数组也可以通过大括号来初始化:

在这个例子中,我们定义了一个4x5的二维数组,并为其提供了初始值。

数组作为函数参数

在 Go 中,数组是值类型,这意味着当它们作为函数参数传递时,实际上传递的是数组的一个副本。这种行为可能会导致性能问题,尤其是在处理大型数组时。

-- -------------------- ---- -------
---- -------------- ------- -
    --- - -- -- - - --------- --- -
        -------------- -- -------
    -
-

---- ------ -
    --- - ------
    ---- - -
    ---- - -
    ---- - -
    ---- - -
    ---- - -
    
    -------------
-

在这个例子中,printArray 函数接收一个数组作为参数,并打印它的内容。当我们调用这个函数时,实际上是将数组的一个副本传递给了它。

结论

尽管数组在 Go 语言中有着重要的地位,但由于它们是值类型且长度固定,因此在实际开发中,更常使用的可能是切片(slice)。不过,理解数组的工作原理对于掌握 Go 语言的基础知识仍然非常重要。

上一篇: Go 语言变量作用域
下一篇: Go 语言指针
纠错
反馈