Go 数组

小万哥
• 阅读 66

数组用于在单个变量中存储相同类型的多个值,而不是为每个值声明单独的变量。

声明数组

在Go中,有两种声明数组的方式:

  1. 使用var关键字:

语法

var array_name = [length]datatype{values} // 这里定义了长度

或者

var array_name = [...]datatype{values} // 这里长度是隐含的

  1. 使用:=符号:

语法

array_name := [length]datatype{values} // 这里定义了长度

或者

array_name := [...]datatype{values} // 这里长度是隐含的

注意:长度指定了数组中要存储的元素数量。在Go中,数组具有固定的长度。数组的长度可以通过一个数字来定义,也可以是隐含的(这意味着编译器根据值的数量来决定数组的长度)。

数组示例 这个示例声明了两个具有定义长度的数组(arr1和arr2):

package main

import "fmt"

func main() {
  var arr1 = [3]int{1, 2, 3}
  arr2 := [5]int{4, 5, 6, 7, 8}

  fmt.Println(arr1)
  fmt.Println(arr2)
}

输出:

[1 2 3]
[4 5 6 7 8]

示例 这个示例声明了两个隐含长度的数组(arr1和arr2):

package main

import "fmt"

func main() {
  var arr1 = [...]int{1, 2, 3}
  arr2 := [...]int{4, 5, 6, 7, 8}

  fmt.Println(arr1)
  fmt.Println(arr2)
}

输出:

[1 2 3]
[4 5 6 7 8]

示例 这个示例声明了一个字符串数组:

package main

import "fmt"

func main() {
  var cars = [4]string{"Volvo", "BMW", "Ford", "Mazda"}
  fmt.Print(cars)
}

输出:

[Volvo BMW Ford Mazda]

访问数组元素

您可以通过引用索引号来访问特定的数组元素。

在Go中,数组索引从0开始。这意味着[0]是第一个元素,[1]是第二个元素,依此类推。

示例

这个示例展示了如何访问prices数组中的第一个和第三个元素:

package main

import "fmt"

func main() {
  prices := [3]int{10, 20, 30}

  fmt.Println(prices[0])
  fmt.Println(prices[2])
}

输出:

10

30

更改数组元素

您还可以通过引用索引号来更改特定数组元素的值。

示例

这个示例展示了如何更改prices数组中第三个元素的值:

package main

import "fmt"

func main() {
  prices := [3]int{10, 20, 30}

  prices[2] = 50
  fmt.Println(prices)
}

输出:

[10 20 50]

数组初始化

如果数组或其元素在代码中没有被初始化,它将被分配其类型的默认值。

提示:int的默认值是0,string的默认值是""。

示例

package main

import "fmt"

func main() {
  arr1 := [5]int{}           // 未初始化
  arr2 := [5]int{1, 2}       // 部分初始化
  arr3 := [5]int{1, 2, 3, 4, 5} // 全部初始化

  fmt.Println(arr1)
  fmt.Println(arr2)
  fmt.Println(arr3)
}

输出:

[0 0 0 0 0]

[1 2 0 0 0]

[1 2 3 4 5]

仅初始化特定元素

也可以仅初始化数组中的特定元素。

示例

这个示例仅初始化数组的第二和第三个元素:

package main

import "fmt"

func main() {
  arr1 := [5]int{1: 10, 2: 40}

  fmt.Println(arr1)
}

输出:

[0 10 40 0 0]

示例解释

上面的数组有5个元素。

1:10 表示:将10赋值给数组索引1(第二个元素)。

2:40 表示:将40赋值给数组索引2(第三个元素)。

查找数组的长度

使用len()函数可以找到数组的长度:

示例

package main

import "fmt"

func main() {
  arr1 := [4]string{"Volvo", "BMW", "Ford", "Mazda"}
  arr2 := [...]int{1, 2, 3, 4, 5, 6}

  fmt.Println(len(arr1))
  fmt.Println(len(arr2))
}

输出:

4

6

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

点赞
收藏
评论区
推荐文章
Kevin501 Kevin501
2年前
Go语言中new()和make()的区别
1.Go语言中的值类型和引用类型值类型:int,float,bool,string,struct和数组(数组要特别注意,别搞混了)变量直接存储值,分配栈区的内存空间,这些变量所占据的空间在函数被调用完后会自动释放。引用类型:slice,map,chan和值类型对应的指针变量存储的是一个地址(或者理解为指针),指针指向内存中真
菜园前端 菜园前端
5个月前
JavaScript的基础语法介绍
原文链接:变量声明在JavaScript程序中,使用一个变量之前应当先声明。变量是使用关键字var来声明的。javascriptvarivarsum20如果未在var声明语句中给变量赋予初始值,那么虽然声明了这个变量,但在给它传入一个值之前,它的初始值就是
Wesley13 Wesley13
1年前
GO值类型与引用类型
值类型值类型包括基本数据类型,int,float,bool,string,以及数组和结构体(struct)。值类型变量声明后,不管是否已经赋值,编译器为其分配内存,此时该值存储于栈上。值类型的默认值:varaint//int类型默认值为0varbstring//string类型默认值为n
Stella981 Stella981
1年前
Rust学习笔记#2:变量声明、绑定与引用
!(https://oscimg.oschina.net/oscnet/up2a26b061f3ae6214fc3a12b58a2ad0e8433.JPEG)变量声明基础知识Rust中的变量分局部变量和全局变量两种,且必须先声明后使用,常见的声明语法为://声明局部变量,使用let关键字letva
Wesley13 Wesley13
1年前
JAVA 基础3
一.数组的概念数组可以看成是多个数据类型的集合,是对这些数据进行统一的管理;数组的变量是引用类型,数组本身是对象,数组中的每个元素相当于该对象的成员变量;数组的元素可以是任何数据类型,包括基础数据类型和引用类型;二.数组的声明方式数据类型\\数组名称new数据类型
Wesley13 Wesley13
1年前
go语言学习笔记(第2章)—类型部分
第2章:顺序编程GO语言被称为"更好的C语言"1\.变量1)变量的声明GO语言引入了关键字 var,而类型信息放在变量名之后例如:varv1int可以将多个变量声明放在一起,例如:var(        v1int        v2string)
Wesley13 Wesley13
1年前
C语言自学《五》
什么是数组数组是一组数目固定、类型相同的数据项数组中的数据称为元素比如longnumbers\10\;方括号中的数字定义了要存放在数组中的元素个数,称为数组维度数组有一个类型,它组合了元素的类型和数组中的元素个数,因此如果两个数组的元素个数、类型相同,这两个数组的类型就相同可以在数组名称后的方括号内使用索引值,索引值是从0开始
Easter79 Easter79
1年前
Systemverilog for design 笔记(四)
转载请标明出处数组、结构体和联合体1. 结构体(struct)1.1. 结构体声明结构体默认是变量,也可以声明为线网varstruct {//通过var进行结构体变量声明logic\31:0\a,b;
小万哥 小万哥
1个月前
Go 切片
切片与数组类似,但更强大和灵活。与数组一样,切片也用于在单个变量中存储相同类型的多个值。然而,与数组不同的是,切片的长度可以根据需要增长和缩小。在Go中,有几种创建切片的方法:1.使用,,,,,,,,,,,,看完如果觉得有帮助,欢迎点赞、收藏和关注
小万哥 小万哥
3星期前
Go Struct
结构体(简称struct)用于创建不同数据类型的成员集合,放入一个单一的变量中。虽然数组用于将相同数据类型的多个值存储在单一变量中,但结构体用于将不同数据类型的多个值存储在单一变量中。结构体对于将数据组合在一起以创建记录非常有用。声明结构体要在Go中声明一