博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Golang学习笔记——array
阅读量:5821 次
发布时间:2019-06-18

本文共 2587 字,大约阅读时间需要 8 分钟。

**数组(Array)**

数组是一个具有`相同数据类型`的元素组成的`固定长度`的`有序集合`。比如下面的例子

var x [5]int

表示数组x是一个整型数组,而且数值的长度为5。

`Go提供了几种不同的数组定义方法。`

`最基本的方式就是使用var关键字来定义,然后依次给元素赋值`。`对于没有赋值的元素,默认为零值`。比如对于整数,零值就是0,浮点数,零值就是0.0,字符串,零值就是"",对象零值就是nil。

1 package main 2  3     import ( 4         "fmt" 5     ) 7     func main() { 8         var x [5]int 9         x[0] = 210         x[1] = 311         x[2] = 312         x[3] = 213         x[4] = 1214         var sum int15         for _, elem := range x {16             sum += elem17         }18         fmt.Println(sum)19     }

在上面的例子中,我们首先使用`var`关键字来声明,然后给出数组名称`x`,最后说明数组为整型数组,长度为5。然后我们使用索引方式给数组元素赋值。在上面的例子中,我们还使用了一种遍历数组元素的方法。该方法利用Go语言提供的内置函数range来遍历数组元素。`range函数可以用在数组,切片和字典上面`。当`range来遍历数组的时候返回数组的索引和元素值`。在这里我们是对数组元素求和,所以我们对索引不感兴趣。在Go语言里面,`当你对一个函数返回值不感兴趣的话,可以使用下划线(_)来替代它`。另外这里如果我们真的定义了一个索引,在循环结构里面却没有使用索引,Go语言编译的时候还是会报错的。所以用下划线来替代索引变量也是唯一之举了。最后我们输出数组元素的和。

还有一种方式,如果知道了数组的初始值。可以像下面这样定义。

1 package main 2  3     import ( 4         "fmt" 5     ) 6  7     func main() { 8         var x = [5]int{1, 2, 3, 4} 9         x[4] = 510 11         var sum int12         for _, i := range x {13             sum += i14         }15         fmt.Println(sum)16     }

当然,即使你不知道数组元素的初始值,也可以使用这样的定义方式。

1 package main 2  3     import ( 4         "fmt" 5     ) 6  7     func main() { 8         var x = [5]int{} 9         x[0] = 110         x[1] = 211         x[2] = 312         x[3] = 413         x[4] = 514 15         var sum int16         for _, i := range x {17             sum += i18         }19         fmt.Println(sum)20     }

在这里我们需要特别重视数组的一个特点,就是数组是有固定长度的。`

但是如果我们有的时候也可以不显式指定数组的长度,而是使用`...`来替代数组长度,Go语言会自动计算出数组的长度。不过这种方式定义的数组一定是有初始化的值的。

1 package main 2  3     import ( 4         "fmt" 5     ) 6  7     func main() { 8         var x = [...]string{ 9             "Monday",10             "Tuesday",11             "Wednesday",12             "Thursday",13             "Friday",14             "Saturday",15             "Sunday"}16 17         for _, day := range x {18             fmt.Println(day)19         }20     }

在上面的例子中,还需要注意一点就是如果将数组元素定义在不同行上面,那么最后一个元素后面必须跟上`}`或者`,`。上面的例子也可以是这样的。

1 package main 2  3     import ( 4         "fmt" 5     ) 6  7     func main() { 8         var x = [...]string{ 9             "Monday",10             "Tuesday",11             "Wednesday",12             "Thursday",13             "Friday",14             "Saturday",15             "Sunday",16         }17 18         for _, day := range x {19             fmt.Println(day)20         }21     }

Go提供的这种可以自动计算数组长度的方法在调试程序的时候特别方便,假设我们注释掉上面数组x的最后一个元素,我们甚至不需要去修改数组的长度。

转载于:https://www.cnblogs.com/cuibin/p/6736326.html

你可能感兴趣的文章
测试人员容易遗漏的隐藏缺陷
查看>>
JS方法:数字转换为千分位字符
查看>>
maven+SpringMVC搭建RESTful后端服务框架
查看>>
[HDU5714]拍照
查看>>
[BalkanOI2016]Cruise
查看>>
《陶哲轩实分析》定理10.1.15:导数的链法则
查看>>
有理数的小数表示若无限,则必为无限循环的
查看>>
一本书的摘录
查看>>
重排序(转载)
查看>>
python+selenium之字符串切割操作
查看>>
串结构练习——字符串匹配
查看>>
linux下输入密码不回显
查看>>
《构建之法》读书笔记
查看>>
拿下阿里、头条、滴滴的offer后谈谈面试经验---动身前看一看
查看>>
android开发(49) android 使用 CollapsingToolbarLayout ,可折叠的顶部导航栏
查看>>
【ERP】如何在多行数据块中实现仅能勾选唯一的主联系人
查看>>
初试装饰模式-(公司人员)
查看>>
分享个好玩的算法游戏
查看>>
javascript正则表达式入门笔记(完整版)
查看>>
马云谈农村教育,推进并校落实寄宿制,要给孩子们一个不同的境遇
查看>>