Fork me on GitHub

Go语言开发-字符串-字符和字符串

3.3.字符和字符串
在Go语言中,字符有两种不同的表示方式(可以很容易地互相转换)。单个字符可以用一个rune(或者int32)来表示。从现在开始,我们交替使用术语“字符”、“码点”、“Unicode字符”、“Unicode码点”来表示包含一个字符的rune(或者int32)。Go语言的字符串被表示成一个包含0个或多个字符且每个字符由一个或多个UTF-8编码的字节表示的序列。

Go语言开发-字符串-比较字符串

3.2.比较字符串
如前所述,Go语言字符串支持常规的比较操作符(<、<=、==、!=、>、>=),参见表2.3。比较操作符在内存中是逐字节的比较字符串。比较操作可以直接使用,例如,比较两个字符串是否相等,也可以间接使用,例如,对已经排好序的[]string使用<操作符比较其含有的字符串。

Go语言开发-字符串-常量、操作符和转义

3.1.常量、操作符和转义
字符串常量使用双引号(”)或者反引号(’)来创建。双引号用于创建可解析的字符串常量,这些字符串支持表3.1列出的转义字符,但是不能跨行。反引号用于创建原生的字符串常量,这些字符串可以可以跨多个行;它们不支持任何转义序列且可以包含除了反引号之外的任何字符。可解析的字符串常量是最常使用的,但是使用原生的字符串常量来编写多行消息、HTML和正则表达式是非常有用的。

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关键字一次就可以将所有常量声明组合在一起。

MVC5 Entity Framework学习(12):Entity Framework高级功能

MVC5 Entity Framework学习(12):Entity Framework高级功能

在之前的文章中,你已经学习了如何实现每个层次结构一个表继承。本节中你将学习使用Entity Framework Code First来开发ASP.NET web应用程序时可以利用的高级功能。在本节中你将重用之前已经创建的页面,接下来你需要新建一个页面并使用原始SQL来批量更新数据库中所有Course的学分。执行原始SQL查询 Entity FrameworkCode First API包含有可以让你直接向数据库发送SQL命令的方法。以下几种方法可以实现这种

MVC5 Entity Framework学习(11):实现继承

MVC5 Entity Framework学习(11):实现继承

之前你已经学习了如何处理并发异常,在本节中你将学习如何实现继承。在面向对象的编程中,你可以使用继承来重用代码。接下来你将修改Instructor和Student类,让它们派生自Person基类,该基类包含instructor和student共有的属性如LastName。你不需要添加或修改任何WEB页面,但是你需要修改某些代码,这些修改会自动反映在数据库中。映射继承到数据库的选项