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)}
见下面的输出。
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)}
输出如下。
Golang中Array的速记声明
让我们使用速记声明创建相同的数组。请参阅以下代码。
// hello.go包主导入“fmt”func main(){a:=(5)int {18,19,21,29,46} //创建数组的简短声明fmt.Println(a)}
它将为我们提供与上述程序相同的输出。
在速记声明期间,不必为数组中的所有项目分配值。请参阅以下方案。
// hello.go包主导入“fmt”func main(){a:=(5)int {18,19,21} //创建数组的简短声明fmt.Println(a)}
在上面的代码中,我们定义了数组5的大小,但只声明了三个项目。
在这种情况下,其余项目默认为0。请参阅上面代码的输出。
数组的长度是其类型的一部分
数组的大小是类型的一部分。因此(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)}
查看输出。
在上面的代码中,我们已经将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使用范围运算符提供更强大的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)}请参阅以下代码。
这就是数组。数组的缺点是它们具有在Go中固定数组长度的限制。不可能增加阵列的长度。这是Golang切片进入图片。
在Go语言中,切片是编程中比常规数组更常见的做法。
最后,Go Arrays Tutorial With Example | Golang中的数组解释文章结束了。
资讯来源:由0x资讯编译自APPDIVIDEND,版权归作者Krunal所有,未经许可,不得转载