实现一个简单的统计函数
为方便起见,我们创建了一个聚合类型用于保存用户输入的数据以及我们的两个统计结果。
Go的结构体类似于C语言的结构体或者Java里只有public数据成员且没有方法的类,但是不像C++语言的结构体那样,因为它并不是一个类。正如我们将要看到的,Go语言的结构体对聚合和嵌入提供非常出色的支持,这是Go语言面向对象编程的核心。
程序员幽默6则
0. 据说有一位软件工程师,一位硬件工程师和一位项目经理同坐车参加研讨会。不幸在从盘山公路下山时坏在半路上了。于是两位工程师和一位经理就如何修车的问题展开了讨论。硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,找出原因,排除故障。”项目经理说:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”
Go语言开发-布尔与数值类型-例子Statistics
Go语言开发-布尔与数值类型-浮点类型
2.3.2.浮点类型
Go语言提供了两种类型的浮点数和两种类型的复数,它们的名字及取值范围如表2.7所示。Go语言中的浮点数广泛使用IEEE-754格式表示(http://en.wikipedia.org/wiki/IEEE_754-2008)。该格式也是很多微型处理器和浮点数单元所使用的原生格式,所以在大多数情况下Go语言能够直接利用硬件的浮点数支持。
Go语言开发-布尔与数值类型-整型
2.3.1.整型
Go语言提供了11种整型,5种有符号的和5种无符号的,再加上1种用于存储指针的类型——它们的名字和值在表2.5中给出。此外,Go语言允许使用byte来作为无符号uint8类型,并且使用单个字符(即Unicode码点)的时候提倡使用rune来替代int32类型。在大多数的情况下,我们通常只需要一种整型int。它适用于循环计数器、数组和切片索引,以及所有通用整型运算;通常该整型的处理速度也是最快的
统领学习的二八法则
学习与使用你记忆中的东西紧密相关。阅读一本非虚构书籍、参加一场讲座、或者浏览一份文档,不完全等于学习。只有当你使用知识时,学习才真正发生。
你的工作记忆(Working Memory,亦称短期记忆)负责编码和强化新的知识。然后,你的大脑会将这些新的知识保留一段时间,直至你实际运用了这些新的知识,它们才被转化成长期记忆。这就是在你学习的时候,你大脑中发生的事情。
Go语言开发-布尔与数值类型-数值类型
2.3.数值类型 Go语言提供了大量的内置数值类型,且标准库也提供了无限大小的big.Int类型的整数和big.Rat类型的有理数(仅受机器内存限制)。每个数值类型都是不同的:这意哧我们不能使用二元算术运算或比较操作(如+或者<)来对不同类型(如类型int32和类型int)的数值进行操作。无类型的数值常量可以兼容表达式中任何(内置)类型的数值,所以我们可以将一个无类型的数值常量与另一个数值进行加法或者比较操作
Go语言开发-布尔与数值类型-布尔值及其表达式
2.2.布尔值及其表达式 Go语言提供了两个内置的布尔值true和false,它们都是bool类型。Go语言支持标准的逻辑和比较操作符,这些操作的结果都是布尔值,参见表2.3.。布尔值及其表达式被应用于if语句中,或者for语句的条件中,以及switch语句的case子句的条件判断中。
Go语言开发-布尔与数值类型-常量和变量
2.1.1.常量和变量
常量使用关键字const声明;变量可以使用关键字var声明,也可以使用快捷变量声明语法。Go语言可以自动推断出所声明变量的类型,但是如果需要,显式指定其类型也是合法的,比如声明一种与Go语言的常规推断不同的类型。2.1.1.1.枚举
当我们需要设置多个常量的时候,我们不必重复使用const关键字,只需使用const关键字一次就可以将所有常量声明组合在一起。