首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【GO学习】数组

接下来我们来学习一下 Go 语言中数组的相关使用及常见的操作。

定义

数组是同一种数据类型元素的集合。Go 语言的数组从声明时就是确定的,使用时元素可以修改,但数组长度不可变,基本语法如下:

var 数组变量名 [元素数量]数据类型var a [3]int

说明:数组的长度必须是常量,并且一旦定义之后,长度不能变。

初始化

数组的初始化和变量一样有很多种初始化方式。

方式一

使用初始化列表来设置数组元素的值。示例如下:

func main() { var baseArray [3]int var numArray = [3]int{1, 2} var stringArray = [2]string{"杭州", "上海"}

fmt.Println(baseArray) // [0 0 0] fmt.Println(numArray) // [1 2 0] fmt.Println(stringArray) // [杭州 上海]}

从上面的示例中可以看出以下几点:

•int类型的初始化值为零。•可以指定初始化的数值,未被初始化数值的元素会初始化为该类型的默认值。

方式二

上面的方式在初始化时数组的需要提供初始值和数组长度,其实我们还可以像变量一样采用自行推断的方式,示例如下:

func main() { var baseArray [3]int var numArray = [...]int{1, 2} var stringArray = [...]string{"杭州", "北京", "上海"}

fmt.Println(baseArray) // [0 0 0] fmt.Println(numArray) // [1 2 0] fmt.Println(stringArray) // [杭州 北京 上海]}

方式三

使用指定索引值方式来初始化数组,示例如下:

func main() { var a = [...]int{1: 1, 3: 5} fmt.Println(a) // [0 1 0 5] fmt.Printf("type of a:%T\n", a) // type of a:[4]int}

遍历

遍历数组有以下两种方法,示例如下:

func main() { a := [...]string{"大王", "小王", "王炸"}

// 方式一:for 循环遍历 for i := 0; i < len(a); i++ { fmt.Println(a[i]) }

// 方式二:for range 循环遍历 for index, value := range a { fmt.Println(index, value) }}

多维数组

Go语言同样也是支持多维数组的,下面以二维数组为例来学习一下吧~

二维数组的定义

func main() { a := [...][2]int{ {11, 12}, {21, 22}, } fmt.Println(a) // [[11 12] [21 22]] fmt.Println(a[0][1]) // 12}

说明:多维数组的第一层是可以使用...来让编译器自动推导数组长度的

二维数组的遍历

func main() { a := [...][2]string{ {"杭州", "北京"}, {"上海", "深圳"}, }

for _, v1 := range a { for _, v2 := range v1 { fmt.Printf("%s\t", v2) } fmt.Println() }}

输出:

杭州 北京上海 深圳

关于数组需要注意以下几点:

•数组是值类型的,因此改变副本的值并不会改变本身的值。•数组支持“==”、“!=”操作符,因为内存总是被初始化过的。•[n]*T表示指针数组,*[n]T表示数组指针。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200724A0WD7U00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券