当前位置:当前位置:主页 > 计算机电子书 > 程序设计 > Go语言 pdf电子书
Go语言从入门到项目实战(视频版)

Go语言从入门到项目实战(视频版) PDF 超清完整版

  • 更新:2022-09-08
  • 大小:12.9 MB
  • 类别:Go语言
  • 作者:刘瑜、萧文翰、董树南
  • 出版:电子工业出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

Go语言从入门到项目实战(视频版)》是由电子工业出版社出版的一本关于Go语言方面的书籍,作者是刘瑜、萧文翰、董树南,主要介绍了关于Go语言、Go语言入门、Go语言实战方面的知识内容,目前在Go语言类书籍综合评分为:9.5分。

书籍介绍

编辑推荐

1.强大的写作团队
三酷猫系列图书的背后拥有一个强大的写作团队,保障了图书的品质。
本书作者刘瑜老师从事代码开发和系统研究工作20余年,具有雄厚的写作基础和实战经验;萧文翰老师为资深博客专家、专栏作家,拥有丰富的项目实战经验和图书出版经验;董树南老师从事软件开发及研究工作多年,对Go语言Web开发有独到见解。三位老师默契配合,使本书将理论和实践完美地结合在一起!

2.有故事的书
三酷猫的故事始终贯穿着本书内容的始末,为学习增加了乐趣,便于读者更好地吸收重点知识,将理论更好地运用在实践中!

3.从读者角度考虑问题
一本好书值得品味,更能帮助读者解决工作中的实际问题。认真学习完本书的读者,应当可以独立实现Go语言应用开发。

内容简介

Go语言是近几年广受关注的一门新兴编程语言,在设计之初就致力于解决C语言的低效问题,以及C 语言的晦涩、难用等缺陷。Go语言吸收了C、C 强大的开发功能优势,继承了C、C 的编程风格,被广泛应用于构建数字基础设施类软件,以及图形/图像处理、移动应用、人工智能、机器学习等领域,广受国内外大型IT公司的推崇和关注。 本书除了讲解Go语言的基本开发知识,还提供了3个完整的实战项目及131个源码示例。另外,本书提供对应的练习与实验,方便读者对所学知识进行巩固和检验。 本书适合高等院校学生阅读,适合程序员自学,也适合培训机构使用。

目录

  • 第1部分 Go语言编程基础
  • 第1章 Go语言入门知识 2
  • 1.1 Go语言简介 2
  • 1.1.1 Go语言的产生 2
  • 1.1.2 Go语言的特点与优势 3
  • 1.2 Go语言开发工具的安装 5
  • 1.2.1 Windows下的安装 6
  • 1.2.2 Linux下的安装 10
  • 1.2.3 macOS下的安装 13
  • 1.3 第一个Go语言程序:Hello三酷猫 13
  • 1.4 安装和使用集成开发环境 16
  • 1.4.1 集成开发环境的安装 16
  • 1.4.2 项目的创建、编译和运行 19
  • 1.4.3 代码的出错提示及调试 22
  • 1.4.4 代码风格约定 25
  • 1.5 关键字和保留字 26
  • 1.6 为代码添加注释 27
  • 1.6.1 单行注释 27
  • 1.6.2 多行注释 28
  • 1.7 练习与实验 29
  • 第2章 基础语法 30
  • 2.1 声明 30
  • 2.2 常量与变量 30
  • 2.2.1 常量 31
  • 2.2.2 变量 32
  • 2.2.3 作用域 33
  • 2.3 基本数据类型 34
  • 2.3.1 整型 34
  • 2.3.2 浮点型 36
  • 2.3.3 复数型 38
  • 2.3.4 布尔型 39
  • 2.3.5 字符串型 39
  • 2.4 运算符及优先级 42
  • 2.4.1 算术运算符 42
  • 2.4.2 关系运算符 43
  • 2.4.3 逻辑运算符 44
  • 2.4.4 位运算符 45
  • 2.4.5 赋值运算符 47
  • 2.4.6 指针运算符 49
  • 2.4.7 优先级 49
  • 2.4.8 案例:三酷猫求相加和 50
  • 2.5 练习与实验 52
  • 第3章 高级数据类型 53
  • 3.1 指针类型 53
  • 3.1.1 指针的概念 54
  • 3.1.2 指针变量的声明 54
  • 3.1.3 指针变量的赋值 55
  • 3.1.4 访问指针变量所表示的变量的值 55
  • 3.1.5 空(nil)指针 56
  • 3.1.6 指向指针的指针变量 56
  • 3.1.7 案例:解答三酷猫关于指针的困惑 57
  • 3.2 数组类型 58
  • 3.2.1 数组的概念 59
  • 3.2.2 数组的声明与初始化 59
  • 3.2.3 访问数组中的元素 62
  • 3.2.4 多维数组 62
  • 3.2.5 案例:三酷猫计算平均温度 63
  • 3.3 切片类型 65
  • 3.3.1 切片的概念 65
  • 3.3.2 切片的声明与初始化 65
  • 3.3.3 空(nil)切片 68
  • 3.3.4 访问切片中的元素 68
  • 3.3.5 多维切片 69
  • 3.3.6 切片的append()函数 69
  • 3.3.7 切片的copy()函数 72
  • 3.4 集合类型 73
  • 3.4.1 集合的概念 73
  • 3.4.2 集合的声明与初始化 73
  • 3.4.3 集合中元素的检索 75
  • 3.4.4 向集合中添加、删除和修改元素 76
  • 3.5 结构体类型 77
  • 3.5.1 结构体的概念及特点 77
  • 3.5.2 结构体的声明 77
  • 3.5.3 结构体的使用 78
  • 3.6 练习与实验 80
  • 第4章 流程控制语法 81
  • 4.1 分支结构 81
  • 4.1.1 if语句 81
  • 4.1.2 if…else…结构 83
  • 4.1.3 多分支结构 83
  • 4.2 switch…case…分支结构 84
  • 4.3 循环结构 86
  • 4.3.1 for循环的使用 86
  • 4.3.2 多层循环结构 89
  • 4.4 跳转控制语句 90
  • 4.4.1 break语句 90
  • 4.4.2 continue语句 91
  • 4.4.3 goto语句 92
  • 4.5 for-range结构 93
  • 4.5.1 遍历数组与切片 93
  • 4.5.2 遍历集合 94
  • 4.5.3 遍历字符串 94
  • 4.6 案例:三酷猫背九九乘法表 95
  • 4.7 案例:三酷猫学算法之冒泡排序 95
  • 4.8 练习与实验 96
  • 第5章 函数 98
  • 5.1 函数的声明 98
  • 5.1.1 函数的声明格式 99
  • 5.1.2 函数的参数 99
  • 5.1.3 可变参数 101
  • 5.1.4 函数的返回值 102
  • 5.2 函数的调用 103
  • 5.2.1 函数的调用格式 103
  • 5.2.2 值传递与引用传递 104
  • 5.2.3 案例:三酷猫识别数据类型 105
  • 5.3 递归函数 106
  • 5.4 匿名函数 107
  • 5.4.1 匿名函数的声明 107
  • 5.4.2 匿名函数的调用 108
  • 5.4.3 将匿名函数赋值给变量 108
  • 5.4.4 使用匿名函数实现回调 108
  • 5.4.5 案例:三酷猫的下载“神器” 109
  • 5.5 闭包 110
  • 5.6 函数的延迟调用 112
  • 5.6.1 延迟调用的使用和特点 112
  • 5.6.2 使用延迟调用的注意事项 113
  • 5.7 Go语言的异常处理 115
  • 5.7.1 运行时宕机 116
  • 5.7.2 宕机时恢复 117
  • 5.8 案例:三酷猫的面积计算器 118
  • 5.9 练习与实验 119
  • 第6章 结构体 120
  • 6.1 类型 120
  • 6.1.1 自定义类型 121
  • 6.1.2 自定义别名 121
  • 6.2 结构体的基本使用 122
  • 6.2.1 结构体的声明及实例化 122
  • 6.2.2 匿名结构体 125
  • 6.2.3 内存中的结构体变量 126
  • 6.2.4 声明并实例化指针类型的结构体变量 127
  • 6.3 构造函数与方法 128
  • 6.3.1 使用结构体实现构造函数 128
  • 6.3.2 方法与接收者 130
  • 6.4 结构体的嵌套 133
  • 6.4.1 嵌套结构体 133
  • 6.4.2 嵌套匿名结构体 134
  • 6.4.3 使用结构体实现继承 135
  • 6.5 案例:三酷猫开银行 136
  • 6.6 练习与实验 138
  • 第7章 接口 140
  • 7.1 接口概述 140
  • 7.2 接口的定义和使用 141
  • 7.2.1 接口的定义 141
  • 7.2.2 接口的实现 142
  • 7.2.3 调用接口方法 145
  • 7.2.4 值接收者与指针接收者 146
  • 7.2.5 实现多个接口 147
  • 7.2.6 接口的嵌套 149
  • 7.3 空接口的定义和使用 150
  • 7.3.1 空接口的定义 150
  • 7.3.2 空接口的使用 151
  • 7.4 类型断言 152
  • 7.5 练习与实验 153
  • 第8章 包 154
  • 8.1 包的声明与导入 154
  • 8.1.1 包的声明 154
  • 8.1.2 包的导入 155
  • 8.2 Go应用程序的启动流程 159
  • 8.3 创建包 160
  • 8.4 Go语言中的常用内置包 161
  • 8.4.1 文本格式化输出:fmt包 162
  • 8.4.2 磁盘文件读/写:os包 171
  • 8.4.3 网络服务:net包 180
  • 8.4.4 JSON格式工具包:json包 185
  • 8.4.5 时间和日期:time包 188
  • 8.4.6 日志服务:log包 192
  • 8.4.7 类型转换:strconv包 195
  • 8.5 案例:三酷猫的文件夹递归复制工具 199
  • 8.6 案例:三酷猫的二维码图片生成器 201
  • 8.7 练习与实验 202
  • 第9章 并发、并行与协程 204
  • 9.1 概念 204
  • 9.1.1 进程与线程 204
  • 9.1.2 并发与并行 205
  • 9.1.3 协程与线程 205
  • 9.2 Go语言协程:Goroutine 205
  • 9.2.1 使用Goroutine的优势 205
  • 9.2.2 创建并启动单个Goroutine 206
  • 9.2.3 创建并启动多个Goroutine 209
  • 9.3 Go语言调度模型:GPM 210
  • 9.3.1 任务调度发展简史 210
  • 9.3.2 Go语言中的协程 211
  • 9.3.3 GPM设计思想 211
  • 9.4 runtime包 213
  • 9.4.1 获取当前的操作系统类型和CPU类型 213
  • 9.4.2 获取和设置CPU核心数量 214
  • 9.4.3 让出资源 215
  • 9.4.4 终止当前协程 216
  • 9.5 在协程任务之间传递数据:Channel 216
  • 9.5.1 通道类型和基本使用 217
  • 9.5.2 无缓冲(同步)通道的使用 218
  • 9.5.3 带缓冲通道的使用 219
  • 9.5.4 判断通道是否关闭 220
  • 9.5.5 单向通道的构建 221
  • 9.6 select结构 221
  • 9.7 加锁和原子操作 223
  • 9.7.1 互斥锁 224
  • 9.7.2 读/写互斥锁 224
  • 9.7.3 原子操作 226
  • 9.8 定时器 228
  • 9.8.1 Timer 228
  • 9.8.2 Ticker 230
  • 9.9 案例:三酷猫筛选0~1000范围内的素数 230
  • 9.10 练习与实验 232
  • 第10章 反射 234
  • 10.1 使用反射访问变量 234
  • 10.1.1 获取变量的类型 235
  • 10.1.2 获取变量的值 236
  • 10.1.3 反射值的非空和有效性判定 237
  • 10.2 使用反射访问指针表示的变量 237
  • 10.3 使用反射访问结构体 238
  • 10.4 使用反射修改值 240
  • 10.5 使用反射调用函数 243
  • 10.6 使用反射创建变量 244
  • 10.7 练习与实验 244
  • 第11章 命令行工具 246
  • 11.1 编译命令go build 246
  • 11.2 清理命令go clean 247
  • 11.3 运行命令go run 248
  • 11.4 代码格式化命令gofmt 249
  • 11.5 编译并安装命令go install 250
  • 11.6 获取包命令go get 250
  • 11.7 练习与实验 251
  • 第12章 数据库操作 252
  • 12.1 MySQL 252
  • 12.1.1 MySQL准备 253
  • 12.1.2 增删改查(CRUD)操作 259
  • 12.1.3 事务(Transaction)操作 262
  • 12.2 Redis 263
  • 12.2.1 Redis准备 264
  • 12.2.2 Redis数据类型 267
  • 12.2.3 使用Go语言对Redis进行操作 268
  • 12.3 练习与实验 271
  • 第2部分 Go语言项目实战
  • 第13章 开发矩阵计算库 274
  • 13.1 线性代数基础与项目功能设计 274
  • 13.1.1 线性代数知识的简单回顾 274
  • 13.1.2 项目功能设计 276
  • 13.2 项目初始化与“鸭子类型” 277
  • 13.2.1 初始化项目 277
  • 13.2.2 定义matrix包的数据类型 278
  • 13.2.3 面向对象与Go语言中的“鸭子类型” 278
  • 13.3 矩阵计算包matrix的开发 281
  • 13.3.1 定义matrix包中的接口 281
  • 13.3.2 实现matrix包中的方法 282
  • 13.3.3 测试matrix包 288
  • 13.3.4 在其他项目中引用matrix包 292
  • 13.4 项目总结 294
  • 第14章 STL文件解析和MongoDB存储 295
  • 14.1 STL文件简介与项目设计 295
  • 14.1.1 项目功能需求设定 298
  • 14.1.2 项目实现思路 299
  • 14.2 开发utils包 299
  • 14.2.1 错误处理文件handle.go 300
  • 14.2.2 文件操作文件fileoper.go 301
  • 14.3 开发用于模型文件处理的stl包 302
  • 14.3.1 定义数据类型:type.go文件 303
  • 14.3.2 解析STL文件数据:stl.go文件 304
  • 14.3.3 安装和配置MongoDB 307
  • 14.3.4 操作数据库:db.go文件 310
  • 14.4 开发路由函数的handler包 314
  • 14.4.1 定义响应数据格式类型的type.go文件 314
  • 14.4.2 用于测试服务器程序连通性的ping.go文件 315
  • 14.4.3 处理STL数据请求的stl.go文件 316
  • 14.5 开发项目入口文件main.go并测试项目 321
  • 14.5.1 开发main.go文件 322
  • 14.5.2 使用Postman测试整个项目 324

资源获取

相关资源

网友留言