Go语言编程实战
批量上传,套装书可能不全,下单前咨询在线客服! 正版书 !!!
¥
27.83
4.7折
¥
59
全新
库存5件
作者强彦 王军红
出版社清华大学出版社
ISBN9787302523017
出版时间2019-07
装帧平装
开本16开
定价59元
货号27915834
上书时间2024-10-20
商品详情
- 品相描述:全新
- 商品描述
-
前言
前言
本书作为Go编程语言的入门级书籍,分为基础篇、核心篇、提高篇、应用篇四篇。
第1篇为基础篇。本篇介绍Go语言的产生背景、特点以及Go开发环境的安装,旨在一步一步地引领读者走进Go的世界。其次,从“Hello World”程序开始,引出常量、变量、运算符等Go语言中基础的知识。
第2篇为核心篇。本篇分为八章,讲解流程控制、数组、切片、字典、字符串操作、函数、指针、接口、结构体、方法和并发等Go语言中的重要概念,并配有大量的具体案例以供读者参考学习。
第3篇为提高篇。本篇主要介绍编写程序时经常遇到的三种需求,分别是文件I/O操作、错误处理、自定义package。其中前两种需求均可以调用Go语言标准库中的方法解决,良好的错误处理可以让一个程序的稳定性得到很大提高; 自定义package可以提高程序代码的复用性,使读者更高效地编写程序。
第4篇为应用篇。本篇主要介绍了Go语言支持的五种常用编码方式以及Go语言操纵MySQL数据库的方法,共两章: 第15章Go语言编码,介绍了Base64编码、十六进制编码、JSON编码、XML编码、CSV编码,并结合实例介绍了Go语言如何对数据进行编码、解码; 第16章数据库编程,介绍如何使用Go语言操作数据库,主要包括MySQL数据库安装和Go语言连接、查询MySQL数据库的方法。
编者
2018年11月
导语摘要
本书从初学者的角度出发,通过通俗易懂的语言、丰富实用的案例,详细介绍了使用Go语言进行程序开发需要掌握的知识。全书分为16章,包括为什么要使用Go语言,Go语言开发环境,“Hello World”程序实现,流程控制,数组、切片和映射,string操作,函数,指针,结构体和方法,接口,并发,文件操作,错误处理与日志,创建自己的go包,Go语言编码、数据库编程等。书中所有知识都结合具体实例进行介绍,设计程序代码给出了详细注释,可以使读者轻松领会Go程序开发的精髓,快速提高开发技能。另外,本书还有配套的PPT和视频讲解。本书适合作为Go语言开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,还可供开发人员查阅、参考。
目录
目录
第1篇基础篇
第1章为什么要使用Go语言
1.1Go语言的产生背景
1.2Go语言的主要特点以及使用Go语言开发的优势
1.2.1Go语言的优势
1.2.2Go语言的设计原则
1.2.3Go语言的特点
本章小结
课后练习
第2章Go语言开发环境
2.1Go安装
2.2开发工具
2.2.1LiteIDE
2.2.2Goland
2.2.3Eclipse
2.2.4Sublime Text
2.3Go语言中的开发包
2.3.1Go语言标准库
2.3.2常用包介绍
2.3.3其他包
本章小结
课后练习
第3章“Hello World”程序实现
3.1Go语言开发的基本规则
3.1.1个Go程序
3.1.2包及其导入
3.1.3变量
3.1.4常量
3.1.5注释
3.2基本数据类型
3.2.1布尔类型
3.2.2整型类型
3.2.3浮点类型
3.2.4复数类型
3.2.5字符串类型
3.3派生数据类型
3.4运算符
3.4.1算术运算符
3.4.2关系运算符
3.4.3逻辑运算符
3.4.4按位运算符
3.4.5赋值运算符
3.4.6其他(杂项)运算符
3.5类型转换与类型别名
本章小结
课后练习
第2篇核心篇
第4章流程控制
4.1选择结构
4.1.1条件语句
4.1.2switch语句
4.2循环结构
4.2.1for语句
4.2.2range
4.3跳转语句
4.3.1break和continue
4.3.2goto
本章小结
课后练习
第5章数组、切片和映射
5.1数组
5.1.1声明与初始化
5.1.2元素访问
5.1.3值类型
5.2切片
5.2.1创建与初始化
5.2.2使用切片
5.3映射
5.3.1创建和初始化
5.3.2使用映射
本章小结
课后练习
第6章string操作
6.1string介绍
6.2连接字符串
6.2.1字符串的连接方式
6.2.2连接方式性能比较
6.3解析字符串
6.3.1遍历字符串
6.3.2字符串操作
6.4检查字符串长度
6.4.1调用bytes.Count()函数
6.4.2调用strings.Count()函数
6.4.3调用utf8.RuneCountInString()函数
6.5数据复制
本章小结
课后练习
第7章函数
7.1创建一个简单函数
7.2复杂函数
7.2.1带参数的函数
7.2.2含返回值的函数
7.2.3含多个返回值的函数
7.2.4含多个参数的函数
7.3匿名函数和闭包
7.4递归函数
本章小结
课后练习
第8章指针
8.1指针的定义
8.2Go语言中的指针
8.2.1Go语言指针基本操作
8.2.2Go语言new函数
8.2.3Go语言指针数组
8.2.4Go语言指针作为函数参数
本章小结
课后练习
第9章结构体和方法
9.1结构体
9.1.1什么是结构体
9.1.2创建一个结构体
9.1.3嵌入式结构体
9.2方法
9.2.1什么是方法
9.2.2如何创建一个方法
9.2.3方法与封装
9.2.4嵌入式结构体中的方法
本章小结
课后练习
第10章接口
10.1接口的定义
10.2接口的实现
10.3空接口
10.4类型断言
10.5类型查询
本章小结
课后练习
第11章并发
11.1协程
11.1.1协程简单应用
11.1.2协程与阻塞
11.1.3NewTimer与NewTicker
11.2同步协程
11.2.1WaitGroup
11.2.2Cond
11.2.3Once
11.3通道
11.3.1通道定义
11.3.2通道的缓冲机制
11.3.3通道的close
11.3.4select
11.3.5协程与通道结合
本章小结
课后练习
第3篇提高篇
第12章文件操作
12.1写数据到文件
12.2从文件中读取数据
12.2.1创建文件
12.2.2打开文件
12.2.3读文件
12.3文件的复制
12.3.1使用Go语言内建的Copy()函数
12.3.2使用Go语言内建的CopyN()函数
12.3.3文件的读入与写出
本章小结
课后练习
第13章错误处理与日志
13.1错误处理
13.1.1定义错误
13.1.2打印错误
13.2defer()、panic()、recover()函数
13.2.1defer()函数
13.2.2panic()函数
13.2.3recover()函数
13.3日志
13.4举例结合使用错误处理方法和日志
本章小结
课后练习
第14章创建自己的go包
14.1创建一个go包
14.2go包的导入方式
14.2.1相对路径导入
14.2.2路径导入
本章小结
课后练习
第4篇应用篇
第15章Go语言编码
15.1Base64编码
15.2十六进制编码
15.3JSON编码
15.4XML编解码
15.4.1XML编码
15.4.2XML解码
15.5CSV编码
本章小结
课后练习
第16章数据库编程
16.1Go语言与数据库
16.2安装MySQL
16.3MySQL连接
16.4连接测试
16.5数据查询
16.5.1已知数据表结构时查询数据
16.5.2未知数据表结构时查询数据
本章小结
课后练习
内容摘要
本书从初学者的角度出发,通过通俗易懂的语言、丰富实用的案例,详细介绍了使用Go语言进行程序开发需要掌握的知识。全书分为16章,包括为什么要使用Go语言,Go语言开发环境,“Hello World”程序实现,流程控制,数组、切片和映射,string操作,函数,指针,结构体和方法,接口,并发,文件操作,错误处理与日志,创建自己的go包,Go语言编码、数据库编程等。书中所有知识都结合具体实例进行介绍,设计程序代码给出了详细注释,可以使读者轻松领会Go程序开发的精髓,快速提高开发技能。另外,本书还有配套的PPT和视频讲解。
本书适合作为Go语言开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,还可供开发人员查阅、参考。
主编推荐
本书通过通俗易懂的语言,丰富多彩的实例,详细介绍用Go语言程序开发知识。书中提供了大量程序案例,配有注释,读者轻松领会Go程序开发精髓,快速提高开发技能。配套讲解视频,扫描书中二维码就可以观看视频,使学习变得更加轻松
精彩内容
第5章数组、切片和映射
使用任何一门编程语言来编写一个程序都会涉及读取和存储集合数据的情况。在进行数据库访问、文件访问、网络访问等操作时,使用某种数据结构来存储所接收的数据是十分必要的,而Go语言就提供了三种数据结构供用户管理集合数据: 数组、切片和映射。这三种数据结构作为Go语言核心的一部分在标准库中被广泛使用。熟练地掌握这些数据结构会使Go语言编程变得更加方便、快捷。
本章要点:
了解数组、切片和映射的创建以及初始化过程。
熟知数组、切片和映射的使用方法。
掌握数组元素的元素访问过程。
熟悉切片赋值、切片增长和切片复制的过程。
掌握映射中元素赋值、查询和删除的方法。
5.1数组
数组是Go语言编程中常用的数据结构之一。顾名思义,数组就是指具有固定长度的一系列同一类型数据的集合。由于数组的长度固定,故在Go中很少直接使用。切片的长度可以改变,在很多场合下使用得更多。然而在理解切片之前,必须先理解数组。
数组是一种非常有用的数据结构,其所占用的内存是连续分配的。由于内存连续,CPU能把正在使用的数据缓存更久的时间,而且内存连续很容易计算索引,可以快速迭代数组中的所有元素。数组的类型信息可以提供每次访问一个元素时需要在内存中移动的距离。既然数组的每个元素类型相同,又是连续分配,就可以以固定速度索引数组中的任意数据,而且速度非常快。
以下为一些常规的数组声明方法:
[32]byte //长度为32的数组,每个元素为一个字节
[2*N] struct { x, y int32 } //复杂类型数组
[1000]*float64 //指针数组
[3][5]int //二维数组
[2][2][2]float64 //等同于[2]([2]([2]float64))
从上述声明方法可以看出,数组可以是多维的,比如[3][5]int就表达了一个3行5列的二维整型数组,总共可以存放15个整型元素。
在Go语言中,数组长度定义后就不可更改了。在声明时长度可以为一个常量或者一个常量表达式(常量表达式是指在编译期即可计算结果的表达式)。数组的长度是该数组类型的一个内建常量,可以用Go语言的内建函数len()来获取。
5.1.1声明与初始化
声明数组时需要指定内部存储的数据的类型,以及需要存储的元素的数量,这个数量也称为数组的长度,代码如下所示:
var array [3]int
//声明一个包含三个元素的整型数组
一旦声明,数组中存储的数据类型和数组长度就都不能改变了。如果需要存储更多的元素,就需要先创建一个更长的数组,再把原来数组里的值复制到新数组中。
图51整型数组的声明
在Go语言中声明变量时,总会使用对应类型的零值来对变量进行初始化。数组也不例外。当数组初始化时,数组内每个元素都初始化为对应类型的零值。在图51中,可以看到整型数组中的每个元素都初始化为0,也就是整型的零值。
一种快速创建数组并初始化的方式是使用数组字面量。数组字面量允许在声明数组元素数量的同时指定每个元素的值,代码如下所示:
//声明一个包含五个元素的整型数组
//用具体值初始化每个元素
array := [5]int{10, 20, 30, 40, 50}
如果使用…替代数组的长度,Go 语言会根据初始化时数组元素的数量来确定该数组的长度,代码如下所示:
//声明一个整型数组
//用具体值初始化每个元素
//容量由初始化值的数量决定
array := [...]int{10, 20, 30, 40, 50}
如果知道数组的长度而且准备给每个值都指定具体值,就可以使用下面这种语法:
//声明一个有五个元素的数组
//用具体值初始化索引为 1 和 2 的元素
//其余元素保持零值
array := [5]int{1: 10, 2: 20}
— 没有更多了 —
以下为对购买帮助不大的评价