《GO语言编程从入门到实践》[62M]百度网盘|pdf下载|亲测有效
《GO语言编程从入门到实践》[62M]百度网盘|pdf下载|亲测有效

GO语言编程从入门到实践 pdf下载

出版社 清华大学出版社京东自营官方旗舰店
出版年 2022-06
页数 390页
装帧 精装
评分 8.9(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供GO语言编程从入门到实践电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

编辑推荐

Go语言用途众多,比如,Go语言可以作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;在网络编程方面,Go语言广泛应用于Web 应用、API应用、下载应用等;除此之外,Go语言还适用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发的。总之,Go语言在云计算开发、网络编程、运维开发等领域都有广泛的应用。本书正是为使广大读者能够掌握Go这一强大好用的语言而编写的。

本书结合作者近十年一线开发经验,力图使用通俗易懂、深入浅出的描述和丰富的动手练习示例,介绍Go语言的语法特性和编程实践。书中还提供了20多个项目,读者在学习本书之后,不仅可以掌握Go语言的使用,还可以自己动手开发实际应用。


内容简介

本书是一本来自一线开发者的Go语言编程入门书,深入浅出地讲述了Go语言的语法特性和编程实践,全书分为基础和项目两部分,基础部分主要介绍Go语言开发环境的搭建、基础语法、数据类型、指针、内置容器、函数、结构体、接口、反射、并发编程、包的应用与管理、目录与文件管理、时间管理、数据库编程等,项目部分主要介绍网页自动化测试程序、网络爬虫程序、网络信息反馈网站的开发实践,此外,还介绍了Go语言程序的编译方法。本书各章还提供了近20个动手练习小项目,便于读者边学边练,迅速提升编程技能。

本书通俗易懂,体系完备,注重实践,适合对Go语言感兴趣的各层次读者使用。


作者简介

黄永祥,资深软件工程师,从业10年,先后从事过系统开发和自动化开发,精通(B/S和C/S)自动化测试技术,尤其是对Go语言、Python语言及Gin、Django等Web框架拥有丰富的经验。已出版《实战Python网络爬虫》《Django Web应用开发实战》《精通Python自动化编程》等多部IT技术图书。

目录

第1章 认识Go语言 1

1.1 Go语言简介 1

1.2 Go语言的优势与特性 2

1.3 在Windows下安装Go 3

1.4 在Linux下安装Go 6

1.5 在macOS下安装Go 8

1.6 安装GoLand 9

1.7 搭建GoLand环境 10

1.8 第一个Go程序“Hello World” 11

1.9 动手练习:编程实现人机交互 12

1.10 小结 14

第2章 基础语法 15

2.1 关键字与标识符 15

2.1.1 关键字 15

2.1.2 标识符命名规范 17

2.1.3 空白标识符 18

2.1.4 预声明标识符 19

2.1.5 导出标识符 21

2.1.6 唯一标识符 22

2.2 变量与常量 22

2.2.1 变量定义与赋值 22

2.2.2 常量与iota 24

2.3 运算符的使用 26

2.3.1 算术运算符 26

2.3.2 关系运算符 27

2.3.3 赋值运算符 28

2.3.4 逻辑运算符 30


2.3.5 位运算符 31

2.3.6 其他运算符 33

2.3.7 运算符优先级 33

2.4 代码注释 34

2.5 动手练习:编程实现个人健康评测 35

2.6 小结 36

第3章 数据类型 38

3.1 整型的取值范围 38

3.2 浮点类型与精度丢失 40

3.3 复数的计算 42

3.4 布尔型的应用 43

3.5 ASCII与Unicode编码 44

3.6 字符类型 45

3.7 字符串操作 45

3.7.1 字符串与转义符 46

3.7.2 字符串格式化 47

3.7.3 字符串拼接 49

3.7.4 获取字符串长度 50

3.7.5 遍历字符串 51

3.7.6 字符位置与截取 52

3.7.7 字符串分割 53

3.7.8 字符串替换 54

3.8 转换数据类型 55

3.8.1 整型与浮点型 55

3.8.2 整型与字符串 56

3.8.3 浮点型与字符串 57

3.9 动手练习:编程实现在线客服热线 59

3.10 小结 61

第4章 流程控制 62

4.1 if的条件判断 62

4.2 if的多层嵌套 64

4.3 switch的多条件分支 65

4.4 for的循环遍历 69

4.5 for-range获取键值 70

4.6 break越级终止循环 71

4.7 continue跳过本次循环 72

4.8 goto跳到指定代码 73

4.9 动手练习:编程实现简易计算器 74

4.10 小结 77

第5章 指针 78

5.1 指针的概念 78

5.2 指针定义与空指针 79

5.3 指针赋值与取值 81

5.4 切片指针 83

5.5 指针的指针 86

5.6 动手练习:编程实现彩票36选7 87

5.7 小结 90

第6章 内置容器 91

6.1 数组 91

6.1.1 数组定义与操作 91

6.1.2 数组初始化定义 92

6.1.3 多维数组 93

6.2 切片 95

6.2.1 切片定义与操作 95

6.2.2 新增切片元素 97

6.2.3 截取切片元素 98

6.2.4 复制切片 100

6.2.5 切片长度与容量 101

6.3 集合 102

6.3.1 集合定义与操作 102

6.3.2 删除集合元素 104


6.4 动手练习:编程实现集合与

JSON互换 104

6.5 列表 107

6.5.1 列表定义 107

6.5.2 列表元素操作 108

6.5.3 遍历列表元素 110

6.6 动手练习:编程实现产品抽样

检测 112

6.7 小结 114

第7章 函数 116

7.1 函数定义与调用 116

7.2 不固定参数数量 119

7.3 函数以变量表示 120

7.4 没有名字的函数 121

7.5 引用外部变量的函数 122

7.6 函数自身调用 123

7.7 动手练习:编程实现创建文件

后缀名 124

7.8 小结 126

第8章 结构体 127

8.1 Go的“面向对象” 127

8.2 结构体定义与实例化 128

8.3 指针方式的实例化 130

8.4 结构体标签 131

8.5 匿名结构体与匿名成员 133

8.6 结构体嵌套 134

8.7 自定义构造函数 136

8.8 结构体方法:指针与值接收者 138

8.9 动手练习:编程实现结构体与

JSON互换 140

8.10 动手练习:编程实现多键索引

查询数据 142

8.11 小结 145


第9章 接口 147

9.1 接口定义与使用 147

9.2 鸭子类型 150

9.3 多态与工厂函数 152

9.4 接口的自由组合 153

9.5 任意数据类型的空接口 156

9.6 接口的类型断言 158

9.7 动手练手:编程实现营救村民

游戏 161

9.8 小结 166

第10章 反射 168

10.1 什么是反射 168

10.2 第一定律:接口变量转反射

变量 169

10.3 第二定律:反射变量转接口

变量 170

10.4 第三定律:修改反射变量的值 171

10.5 反射的类型与种类 173

10.6 切片与反射 175

10.7 集合与反射 177

10.8 结构体与反射 180

10.9 指针与反射 187

10.10 函数与反射 190

10.11 动手练习:编程实现对象序列化

处理 192

10.12 小结 193

第11章 并发编程 194

11.1 异步的概念 194

11.2 Goroutine 195

11.3 函数创建Goroutine 197

11.4 匿名函数创建Goroutine 199

11.5 通道 200

11.6 无缓冲通道 202

11.7 带缓冲通道 204

11.8 关闭通道读取数据 205

11.9 Select处理多通道 207

11.10 sync同步等待 208

11.11 sync加锁机制 210

11.12 sync.Map的应用 214

11.13 动手练习:编程模拟餐馆经营

场景 219

11.14 小结 221

第12章 语法特性 223

12.1 panic触发宕机 223

12.2 defer延时执行 224

12.3 recover宕机时恢复执行 225

12.4 值类型、引用类型与深浅拷贝 226

12.5 类型别名与自定义 229

12.6 new和make的区别 231

12.7 泛型的概念与应用 234

12.8 动手练习:编程实现出租车费用

计算 236

12.9 小结 238

第13章 包的应用与管理 239

13.1 常用内置包 239

13.2 包命名与导入 240

13.3 包的重命名 242

13.4 无包名调用 242

13.5 初始化函数init()与空导入 243

13.6 包的自定义与使用 245

13.7 包管理工具go mod 246

13.8 第三方包下载与使用 249

13.9 动手练习:编程实现排序算法 251

13.10 小结 255

第14章 目录与文件处理 257

14.1 使用os实现系统操作 257

14.2 使用path获取路径信息 262

14.3 使用os读写文件 267

14.4 使用io/ioutil读写文件 270

14.5 使用bufio读写文件 272

14.6 使用encoding/csv读写CSV文件 275

14.7 使用encoding/json读写

JSON文件 278

14.8 第三方包读写Excel文件 280

14.9 动手练习:编程实现学生管理

系统 283

14.10 小结 286

第15章 时间处理 287

15.1 时间戳 287

15.2 结构体Time 289

15.3 字符串格式化 290

15.4 时间类型的相互转换 292

15.5 时间计算操作 293

15.6 延时、超时与定时 297

15.7 动手练习:编程实现个人

备忘录 300

15.8 小结 302

第16章 数据库编程 304

16.1 搭建SQLite运行环境 304

16.2 安装与使用MySQL 306

16.3 安装与使用MongoDB 309

16.4 安装与使用Redis 312

16.5 go-sqlite3读写SQLite 314

16.6 go-sql-driver/mysql读写MySQL 317

16.7 mongo-driver读写MongoDB 320

16.8 go-redis读写Redis 325

16.9 ORM框架:Gorm 330

16.10 动手练习:编程实现员工管理

系统 335

16.11 小结 337


第17章 Go项目——网页自动化测试

程序开发 339

17.1 了解自动化工具Selenium 339

17.2 安装Selenium 340

17.3 使用浏览器查找元素 342

17.4 浏览器配置与启动 345

17.5 网页元素定位 349

17.6 网页元素操作 353

17.7 浏览器常用操作 356

17.8 网页加载等待 358

17.9 iframe与标签页切换 360

17.10 Cookie读写 363

17.11 动手练习:编程实现爬取

BOSS直聘招聘数据 365

17.12 小结 370

第18章 Go项目——网络爬虫程序

开发 372

18.1 HTTP与HTTPS 372

18.2 请求头 374

18.3 使用浏览器分析网站 375

18.4 使用net/http发送请求 377

18.5 转码与HTML解析 379

18.6 选择数据存储方式 382

18.7 动手练习:编程实现爬取

电影TOP100榜单 383

18.8 小结 388

第19章 Go项目——网络编程应用 389

19.1 TCP和UDP的区别 389

19.2 创建TCP应用 390

19.3 创建UDP应用 393

19.4 创建HTTP服务应用 396

19.5 httprouter扩展路由 399


19.6 多种响应处理方式 401

19.7 HTML模板引擎 404

19.8 网站项目:信息反馈平台的开发 410

19.8.1 网站功能需求 410

19.8.2 项目架构设计 411

19.8.3 搭建开发环境 412

19.8.4 定义模型与路由 412

19.8.5 编写模板文件 415

19.8.6 网站运行与测试 417

19.9 小结 419

第20章 编译与运行 420

20.1 run与build的区别 420

20.2 单文件编译 421

20.3 同包多文件编译 422

20.4 不同包多文件编译 422

20.5 编译参数说明 423

20.6 小结 424


前言/序言


Go(又称 Golang)语言于2007年在Google公司诞生,经过10多年的发展得到了众多开发者的关注和广泛应用,随着云计算时代的到来,Go语言的简洁、高效、并发特性和成熟的开源社区吸引了众多传统语言开发者的加入,而且人数越来越多。

甚至有人认为,Go语言是互联网时代的C语言,不仅会制霸云计算,10年内还将会制霸整个IT领域。

Go语言用途众多,比如,Go语言可以作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;在网络编程方面,Go语言广泛应用于Web 应用、API应用、下载应用等;除此之外,Go语言还适用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发的。总之,Go语言在云计算开发、网络编程、运维开发等领域都有广泛的应用。本书正是为使广大读者能够掌握Go这一强大好用的语言而编写的。

本书结合笔者多年一线开发经验,力图使用通俗易懂、深入浅出的描述和丰富的动手练习示例,介绍Go语言的语法特性和编程实践。书中还提供了多个项目,读者在学习本书之后,不仅可以掌握Go语言的使用,还可以自己动手开发实际应用。

本书结构

本书分为基础和项目两部分,全书共20章,其中基础部分为第1~16章,项目部分为第17~19章,最后一章介绍了Go程序的编译,各章内容简要介绍如下:

第1章介绍Go语言的发展历程、开发环境搭建、代码编辑器的安装和入门代码编写。

第2章介绍关键字、标识符、变量、常量、运算符和代码注释等入门知识。

第3章讲述数据类型,即整型、浮点数、复数、布尔型和字符串,还介绍了浮点数精度丢失的解决方案、ASCII与Unicode编码差异、字符串操作和数据类型转换。

第4章讲述流程控制——判断和循环。判断包含if和switch语句,循环包含for、for-range、break、continue和goto语句。

第5章讲述指针的概念、定义与空指针、指针赋值与取值、切片指针和指针的指针等。

第6章讲述内置容器,包括数组、切片、集合和列表,分别介绍各个容器的定义与应用。

第7章讲述函数的应用,包括函数的定义与调用、设置不固定函数参数、函数变量、匿名函数、闭包和递归函数。

第8章讲述结构体应用,包括结构体定义与实例化、设置结构体标签、匿名结构体与匿名成员、结构体嵌套、自定义构造函数和结构体方法。

第9章讲述接口应用,包括接口定义与使用、鸭子类型、多态与工厂函数、接口组合、空接口和接口的类型断言。

第10章讲述反射机制,包括反射3大定律、反射类型与种类以及不同数据类型的反射操作。

第11章讲述并发编程,包括异步概念、函数创建并发、通道变量、无缓冲通道、带缓冲通道、Select处理多通道、sync同步等待、sync加锁机制和sync.Map的应用。

第12章讲述语法特征,包括panic触发宕机、defer延时执行、recover宕机时恢复执行、值类型、引用类型与深浅拷贝、类型别名与自定义、关键字new和make的区别。

第13章讲述包的应用与管理,包括常用内置包、包命名与导入、包的重命名、无包名调用、初始化函数init()与空导入、包管理工具go mod和第三方包的下载与使用。

第14章讲述系统目录与文件处理,分别介绍内置包os、io/ioutil、bufio、encoding/csv、encoding/json和第三方包excelize实现目录与文件的读写处理。

第15章讲述时间处理,由内置包time生成不同类型的时间格式——时间戳、结构体Time和字符串格式化,并讲述时间类型转换、加减运算、延时、超时和定时等功能。

第16章讲述数据库编程,阐述如何安装不同的数据库,使用第三方包实现SQLite、MySQL、MongoDB和Redis的编程应用。

第17章讲述网页自动化测试开发,搭建自动化测试开发环境和阐述第三方包tebeka/selenium的使用。

第18章讲述网络爬虫开发,介绍网络爬虫知识要点,使用内置包net/http、第三方包goquery、mahonia等实现爬虫开发。

第19章讲述网络编程应用,介绍网络编程知识,使用内置包net/http开发HTTP服务、第三方包httprouter扩展路由功能、html/template生成HTML网页等Web应用开发。

第20章讲述内置指令go build的编译功能,实现单文件、多文件、不同包多文件等编译处理以及编译参数说明。

本书特色

? 循序渐进,从零基础入手:本书从初学者必备的基础知识入手,循序渐进地介绍Go语言的语法特性和基础理论,适合没有接触过Go语言编程的读者使用。

? 实例丰富,由浅入深:本书每个知识点都配以实例进行讲解,各章最后还提供了动手练习小项目。实例选择从易到难,结合了笔者的实际开发经验,动手练习可以帮助读者巩固知识、提升技能,解决实际开发中遇到的各种问题。

? 注重实践,适合不同层次的读者:本书既适合初学者阅读,也适合不同岗位的从业者使用。本书根据笔者多年从业经验编写,书中涉及的用Go语言开发爬虫、开发自动化测试程序、开发网站项目,可以满足各类开发人员的需求。

源代码下载

读者可登录GitHub(https://github.com/xyjw/golang-book)下载本书源代码。

也可以扫描以下二维码下载源代码:

如果下载有问题,请发送邮件到booksaga@126.com,邮件主题为“Go语言编程从入门到 实践”。

读者对象

本书主要适合以下读者阅读:

? 从零开始学习Go语言编程的初学者。

? 各类开发岗位的从业者,如爬虫开发人员、测试人员和后端开发人员等。

? 培训机构和大专院校的学生。

笔者从事编程工作近10年,本书可以说是来自开发实践的经验心得,虽然力臻完美,但限于水平,难免会存在疏漏之处,欢迎广大读者及业界专家不吝指正。



黄永祥

2022年3月2日