Fork me on GitHub

Go语言开发-布尔与数值类型-实现一个HTTP服务器

2.4.2.实现一个基本的HTTP服务器
这个statistics程序仅有一个web页面,并运行在本机上,它的main()函数如下:
Http.HandleFunc() 函数接受两个参数:路径和当该路径被请求时要调用的函数的引用。该函数必须具有签名 func(http.ResponseWriter, * http. Request)。如果我们愿意,我们可以注册多个“路径-函数”对。这里我们只注册了路径/(即web程序的主页)和一个自定义的homePage() 函数。

Go语言开发-布尔与数值类型-实现Statistics函数

实现一个简单的统计函数
为方便起见,我们创建了一个聚合类型用于保存用户输入的数据以及我们的两个统计结果。
Go的结构体类似于C语言的结构体或者Java里只有public数据成员且没有方法的类,但是不像C++语言的结构体那样,因为它并不是一个类。正如我们将要看到的,Go语言的结构体对聚合和嵌入提供非常出色的支持,这是Go语言面向对象编程的核心。

Go语言开发-布尔与数值类型-例子Statistics

Go语言开发-布尔与数值类型-例子Statistics

2.4.例子:Statistics
本示例 (和后面的练习) 的目的是为大家提供Go编程的一些背景知识。就像第一章中的那样,本示例使用了一些还没有完全讲解的Go语言特性。因为我们提供了一些简单解释和交叉引用,所以这应该不是大问题。本示例还介绍了Go语言标准库中的net/http包的一些简单用法,使用该包我们可以非常容易地创建一个HTTP服务器。

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。它适用于循环计数器、数组和切片索引,以及所有通用整型运算;通常该整型的处理速度也是最快的

Go语言开发-布尔与数值类型-数值类型

2.3.数值类型 Go语言提供了大量的内置数值类型,且标准库也提供了无限大小的big.Int类型的整数和big.Rat类型的有理数(仅受机器内存限制)。每个数值类型都是不同的:这意哧我们不能使用二元算术运算或比较操作(如+或者<)来对不同类型(如类型int32和类型int)的数值进行操作。无类型的数值常量可以兼容表达式中任何(内置)类型的数值,所以我们可以将一个无类型的数值常量与另一个数值进行加法或者比较操作

Go语言开发-布尔与数值类型-常量和变量

2.1.1.常量和变量
常量使用关键字const声明;变量可以使用关键字var声明,也可以使用快捷变量声明语法。Go语言可以自动推断出所声明变量的类型,但是如果需要,显式指定其类型也是合法的,比如声明一种与Go语言的常规推断不同的类型。2.1.1.1.枚举
当我们需要设置多个常量的时候,我们不必重复使用const关键字,只需使用const关键字一次就可以将所有常量声明组合在一起。

Go语言开发-布尔与数值类型

这是关于Go语言面向过程编程的四个章节中的第一章,它会为你接下来的学习奠定基础——无论是面向过程,面向对象,并发,都是这些编程方式的任意组合。本章涵盖了Go语言内置的布尔类型和所有Go语言内置的数值类型,并简要介绍了Go语言标准库中的两种数值类型。除了需要在不同数值类型之间进行显示转换和便捷的内置复数类型外

Go语言开发-为什么是Go

为什么是Go Go语言是于2007年作为google的一个内部项目启动的。其最初由是由Robert Griesemer、Unix 专家 Rob Pike 和Ken Thompson设计。在 2009 年 11 月 10 日, Go语言以一个自由的开源许可方式公开亮相。Go语言一直由包括其最初设计者加上Russ Cox, Andrew Gerrand, Ian Lance Taylor和许多其他开发者在内的Google团队开发。Go语言采取一种开放的开发模式,吸引了许多来自世界各地的开发者为其发展贡献力量,这些被信任被尊重的开发者获得了与Google员工一样的代码提交权限。

Go语言开发-引言

引言
本书的目的是讲授如何使用Go语言的所有特性和标准库中常用的包来进行地道的Go语言编程。本书同时也被设计成在学习Go语言后有用的参考资料。为了实现这两个目标,本书知识相当全面并尽量保证每一章只涵盖一个主题–各章之间会进行前后交叉引用。

Go语言开发-布尔与数值类型-基础

Go语言支持两种类型的注释,与C++的一样。行注释以//开始,以换行符结束;它们被简单当做一个换行符。块注释以/*开头,以*/结尾,可能包含多个行。如果块注释只占用了一行(如/*line comment*/),它被当做一个空格对待,如果该块注释占用了多行,它就被当做一个换行符对待。(我们将在第5章看到,换行符在Go语言中非常重要。)