前面我们已经学习了一些简单的基本类型,现在学习复合类型,复合类型主要包括了数组,指针,切片等。现在先来学习数组.

一 数组

如果要存储班级里所有学生的数学成绩,应该怎样存储呢?可能有同学说,通过定义变量来存储。但是,问题是班级有80个学生,那么要定义80个变量吗?

像以上情况,最好是通过数组的方式来存储。
所谓的数组:是指一系列同一类型数据的集合。

1.1 数组定义

var a [10]int

数组定义也是通过var 关键字,后面是数组的名字a,长度是10,类型是整型。表示:数组a能够存储10个整型数字。也就是说,数组a的长度是10。
我们可以通过len( )函数测试数组的长度,如下所示:

var a [10]int
fmt.Println(len(a))

当定义完成数组a后,就在内存中开辟了10个连续的存储空间,每个数据都存储在相应的空间内,数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度。
注意:数组的长度只能是常量。以下定义是错误的:

var n int = 10
var a [n]int

1.2 数组赋值

数组定义完成后,可以对数组进行赋值操作。
数组是通过下标来进行操作的,下标的范围是从0开始到数组长度减1的位置。

var a[10] int 表示的范围是a[0],a[1],a[2]…,a[9]
完成对数组赋值的第一种方法:

但是这种赋值方式比较麻烦,所以可以使用第二种赋值方式,如下所示:

通过for循环完成数组的赋值与输出。注意:循环的条件,如果将循环条件修改成i<=10是否正确
在上一节中,我们说过可以通过len( )函数来获取 数组的长度,所以也可以对上面的程序,进行如下的修改:

对数组中的数据输出,也可以使用range.如下所示:

i变量存储的是数组的下标,data变量存储的是数组中的值。
如果只想输出数组中的元素值,不希望输出下标,可以使用匿名变量

上面的案例中,首先完成了数组的赋值,然后再输出数组中的值。但是,如果定义完成数组后,没有赋值,直接输出会出现什么样的问题呢?

func main() {var a[10] intfor i :=0;i<len(a);i++{fmt.Println(a[i])}
}

结果

a数组中的元素类型是整型,定义完成后,直接输出,结果全部是0.
当然数组中存储的元素类型也可以是其它类型,如下所示:
var a [10]float64//如果不赋值,直接输出,结果默认全部是0
vara[10]string//如果不赋值,直接输出,结果默认全部是空字符
var a [10]bool//如果不赋值,直接输出,结果默认全部是false.

1.3 数组初始化

上一小节中,首先先定义数组,然后再完成数组的赋值。其实,在定义数组时,也可以完成赋值,这种情况叫做数组的初始化。
具体案例如下:

1.4 数组练习

1.4.1 从一个整数数组中取出最大的整数,最小整数,总和,平均值。

代码如下:

结果

通过观察发现该程序输出的结果没有问题。
但是,现在将程序进行如下修改:将数组中的0元素删除,同时将数组的长度修改为5.

运行以上程序,结果如下:

思考:数组中没有0,为什么输出的结果中最小值为0呢?

现在,在将程序进行如下修改:将数组中的数据全部修改成负数。

运行该程序,结果输出:

思考:数组中没有0,为什么输出的结果中最大值为0呢?

应该怎样解决如上的问题呢?将程序修改如下:

1.4.2 数组里面都是人的名字,分割成:例如:老王|王叔|王哥…

代码如下

结果

现在将最后一个“|”去掉,程序应该怎样进行修改?
具体思路:首先通过循环的方式取出数组中前两个元素,分别链接”|” ,存储到变量str中。然后获取最后一个元素,不需要链接“|”,直接与str链接就可以了。获取names数组中最后一个元素的方式:
通过len(names)计算出数组的长度,然后减去1, 就是数组中最后一个元素的下标(数组的下标是从0开始计算)。所以取出最后一个元素的方式为:names[len(names)-1]

九 Go语言之数据格式相关推荐

  1. 一文盘点PaddlePaddle官方九大自然语言处理模型

    一文盘点PaddlePaddle官方九大自然语言处理模型:百度paddlepaddle模型

  2. [Java面试九]脚本语言知识总结.

    [Java面试九]脚本语言知识总结. 核心内容概述 1.JavaScript加强,涉及到ECMAScript语法.BOM对象.DOM对象以及事件. 2.Ajax传统编程. 3.jQuery框架,九种选 ...

  3. C语言 JSON数据格式解析

    C语言 JSON数据格式解析 一.如何用c语言编写与解析json数据格式,这篇主要是使用一个第三方的json库,本人已经上传至csdn,下载链接在下方. 二.json库代码文件下载地址(json.ra ...

  4. c语言程序设计 江宝钏 实验九,c语言程序设计,江宝钏著,实验九

    c语言程序设计,江宝钏著,实验九 宁波大学实验报告学号 姓名 专业 土木建设类5班 学院 阳明学院 2016年 6月 10 日实验名称:结构体与链表实验目的与要求:1. 掌握结构体类型变量的定义和使用 ...

  5. c语言程序设计第五版实验报告九,C语言程序设计实验报告-实验九.doc

    C语言程序设计实验报告-实验九.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...

  6. 【C语言进阶深度学习记录】三十九 C语言中的可变参数(参数可变的函数)

    用过printf()函数的热都知道,printf的参数可以有多个,它是可变的,根据我们输出参数的类型以及个数的不同来确定参数.今天来学习C语言中参数可变的函数是如何实现的. 文章目录 1 可变参数 2 ...

  7. 诛天者 pat basic 练习五十九 C语言竞赛

    题目: C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份"神秘大奖"(比如很巨大的一本学生研究论文集-- ...

  8. MySQL5.7-第九章语言结构

    第九章语言结构 目录 9.1文字值 9.1.1字符串文字 9.1.2数字文字 9.1.3日期和时间文字 9.1.4十六进制文字 9.1.5位值文字 9.1.6布尔文字 9.1.7空值 9.2架构对象名 ...

  9. c语言程序设计 江宝钏 实验九,c语言程序设计,江宝钏著,实验九.docx

    宁波大学实验报告 学号 姓名 专业土木建设类 5 班 学院阳明学院 2016 年 6 月 10日 实验名称:结构体与链表 实验目的与要求: 掌握结构体类型变量的定义和使用. 掌握结构体类型数组的定义和 ...

  10. 编程模板-R语言脚本写作:最简单的统计与绘图,包安装、命令行参数解析、文件读取、表格和矢量图输出

    写在前面 个人认为:是否能熟悉使用Shell(项目流程搭建)+R(数据统计与可视化)+Perl/Python等(胶水语言,数据格式转换,软件间衔接)三门语言是一位合格生物信息工程师的标准. 之前分享过 ...

最新文章

  1. Python如何进行cross validation training
  2. 利用adb命令查看apk文件包名的一些方法
  3. OpenCV图像处理使用笔记(一)——使用鼠标选取任何形状的ROI
  4. xfce4桌面的标题栏都变成了透明的
  5. 《Servlet学习笔记》Servlet开发细节-线程安全
  6. keepalived和heartbeat区别
  7. KGDiscreetAlertView
  8. 3D点云目标检测算法汇总
  9. Android-7.0-Nuplayer-启动流程
  10. Bugku杂项——旋转跳跃
  11. 如何用 Python 打飞机 ?
  12. java 将5mb以内图片压缩至200kb以下
  13. ppurl 下载电子书
  14. “探月计划”来袭,美国米德天文望远镜助孩子观月赏月
  15. 【树莓派】登入树莓派
  16. 2022年G2电站锅炉司炉考试题库及模拟考试
  17. 数据源SqlDataSource,DetailView,ObjectDataSource控件的配置使用
  18. 分布式数据库系统之【结构】
  19. 【PAT甲级A1003 】Emergency (25分)(c++)
  20. android sqlite fts4,在Sqlite中创建动态FTS4表

热门文章

  1. vs2015中工具箱不显示DevExpress控件的解决办法
  2. 如何做蛋白质互作网络图
  3. java中CheckException和UnCheckException的区别
  4. XTU 1339 Interprime
  5. visio中的公式在转换pdf后公式糊掉;word导出pdf时visio丢失模块字体
  6. 【高等数学】四.多元函数微分学和二重积分
  7. 【问题笔记】Android Studio运行或打包时报错:Some file crunching failed, see logs for details
  8. 广告行业中那些趣事系列25:腾讯2020广告大赛冠军解决方案带来的思考
  9. python 生成word,插入图片如何居中显示
  10. 解决Office桌面图标异常