Go Arrays Tutorial With Example | Golang中的数组解释


Go Arrays Tutorial With Example | Golang中的数组解释是今天的主题。数组是相同类型的固定大小的项集合。数组的项按顺序存储,可以使用它们的索引进行访问。如果我们想在Go中声明一个数组,程序员就会指定元素的类型和数组所需的项数。

内容概述

  • 1 Go Arrays Tutorial With Example
  • 2 Golang中的数组声明
  • 3 Golang中Array的速记声明
  • 4数组的长度是其类型的一部分
  • Golang中的5个数组是值类型
  • 6 Go中数组的长度
  • 7迭代Golang中的数组
  • 8使用范围运算符迭代数组
  • 9 Golang中的多维数组

Go Arrays Tutorial With Example

Go编程语言提供了一种称为数组的数据结构,它可以存储相同类型的固定大小的顺序集合。该数组用于存储数据集合,但将数组视为相同类型的变量集合通常更有用。

您不是声明单个变量(例如no1,no2,…和no99),而是声明一个数组变量(如数字),并使用no(0),no(1)和…,no(99)来表示单个变量。

Golang中的数组声明

数组属于类型n(T)。 n表示数组中的元素数,T表示每个元素的类型。项目数n也是该类的一部分。

声明数组有不同的方法。我们一个一个地看看它们。

var a(n)T

以下是如何声明5个整数的数组。

var a(5)int

请参阅以下代码示例。

// hello.go包main import(“fmt”)func main(){var a(5)int //整数,长度为5 fmt.Println(a)} 

见下面的输出。

Go Arrays Tutorial With Example

var a(5)int声明一个长度为5的整数数组。数组中的所有元素都自动赋值为数组类型的零值。在这种情况下,变量a是整数数组,因此a的所有项都被赋值为0,即整数的零值。

数组的索引从0开始,以length – 1结束。让我们为上面的数组赋值。

// hello.go包main import“fmt”func main(){var a(5)int a(0)= 18 a(1)= 19 a(2)= 21 a(3)= 29 a(4) = 46 fmt.Println(a)} 

输出如下。

Go中的数组

Golang中Array的速记声明

让我们使用速记声明创建相同的数组。请参阅以下代码。

// hello.go包主导入“fmt”func main(){a:=(5)int {18,19,21,29,46} //创建数组的简短声明fmt.Println(a)} 

它将为我们提供与上述程序相同的输出。

Golang中Array的速记声明

在速记声明期间,不必为数组中的所有项目分配值。请参阅以下方案。

// hello.go包主导入“fmt”func main(){a:=(5)int {18,19,21} //创建数组的简短声明fmt.Println(a)} 

在上面的代码中,我们定义了数组5的大小,但只声明了三个项目。

在这种情况下,其余项目默认为0。请参阅上面代码的输出。

Go Arrays示例

数组的长度是其类型的一部分

数组的大小是类型的一部分。因此(15)int和(25)int是不同的类型。因此,无法调整数组大小。不要担心限制因为切片存在以克服这个缺点。这意味着您无法调整数组大小,因为调整数组大小意味着更改其类型,并且不允许您在Golang中更改变量的类型。

请参阅以下代码以更好地了解。

package main // hello.go func main(){a:=(3)int {5,78,8} var b(5)int b = a} 

如果您使用的是Visual Studio Code并且已经安装了所有Go扩展,那么您可能会在VSCode编辑器中收到错误。现在,如果你运行上面的代码,那么它将抛出一个错误。

数组的长度是其类型的一部分

因此,在上面的代码中,变量a和b具有不同的数组大小。这就是为什么我们不能因阵列长度差异而相互分配的原因,并且在Go中严格禁止。

Golang中的数组是值类型

Golang中的数组是值类型,与C,C ++,Python和Java等其他语言不同,其中数组是引用类型。

这意味着当您将数组分配给新变量或将数组传递给函数时,将复制整个数组。因此,如果要对复制的数组进行任何更改,原始数组将不会受到影响并保持不变。请参阅以下代码以了解。

// hello.go package main import“fmt”func main(){arrA:=(5)string {“Ned”,“Edd”,“Jon”,“Jeor”,“Jorah”} arrB:= arrA arrB( 1)=“Gendry”fmt.Println(“array A =”,arrA)fmt.Println(“array B =”,arrB)} 

查看输出。

Golang中的数组解释

在上面的代码中,我们已经将arrA的内容复制到了arrB,然后我们修改了arrB,但仍然,arrA保持不变,并且它不会改变。

Go中数组的长度

我们可以通过将该数组作为参数传递给Go中的len函数来获取数组的长度。请参阅以下代码。

// hello.go package main import“fmt”func main(){data:=(...)string {“Ned”,“Edd”,“Jon”,“Jeor”,“Jorah”} fmt.Println( “数据长度是”,len(数据))} 

见下面的输出。

数组的长度

迭代Golang中的数组

您可以使用for循环迭代数组,如下面的代码。

// hello.go包主导入“fmt”func main(){data:=(...)string {“Ned”,“Edd”,“Jon”,“Jeor”,“Jorah”} i:= 0;我

见下面的输出。

迭代Golang中的数组

使用范围运算符迭代数组

Golang使用范围运算符提供更强大的for循环形式。以下是如何使用带有for循环的范围运算符来迭代数组。

// hello.go包主导入“fmt”func main(){data:=(...)string {“Ned”,“Edd”,“Jon”,“Jeor”,“Jorah”}索引,值:=范围数据{fmt.Printf(“GoT的字符%d =%s  n”,索引,值)}}

见下面的输出。

使用范围运算符迭代数组

Golang中的多维数组

直到现在,我们只处理了一维数组。您还可以在Golang中创建多维数组。

以下示例演示如何创建多维数组。

// hello.go包main import“fmt”func main(){multiA:=(2)(2)int {{19,21},{29,46},} fmt.Println(multiA)} 

请参阅以下代码。

Golang中的多维数组

这就是数组。数组的缺点是它们具有在Go中固定数组长度的限制。不可能增加阵列的长度。这是Golang切片进入图片。

在Go语言中,切片是编程中比常规数组更常见的做法。

最后,Go Arrays Tutorial With Example | Golang中的数组解释文章结束了。

资讯来源:由0x资讯编译自APPDIVIDEND,版权归作者Krunal所有,未经许可,不得转载
你可能还喜欢