Go语言从入门到项目实战(视频版)

Go语言从入门到项目实战(视频版)

  • 大小:12.9 MB
  • 类型:Go语言
  • 格式:PDF
  • 出版:电子工业出版社
  • 作者:刘瑜、萧文翰、董树南
  • 更新:2022-09-08 09:24:09
vip 免费获取(已有187人参与)
关注公众号免费送书
版权投诉 / 资源反馈(本资源由用户 贾嘉德 投稿)

给大家整理了Go语言相关的资料,由电子工业出版社出版,作者是刘瑜、萧文翰、董树南,介绍了关于Go语言、Go语言入门、Go语言实战方面,格式为PDF,资源大小12.9 MB,目前在Go语言类资源综合评分为:9.2分。

Go语言资源推荐

书籍介绍

编辑推荐

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

以上就是本次关于书籍资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

Go语言相关资源

  • Go语言Web编程

    Go语言性能好、语法简单、开发效率高!一起来探索Go 语言吧! 本教程特别适合从事PHP/Python/Ruby/Node.js等Web开发的读者,通过本书可以了解编译型语言怎么写Web应用开发,系统底层怎么进行网络通信。 还适合从事C/C++/Java等系统级别开发的读者,通过本书可以了解到Web开发的一些知识,例如,如何处理表单,如何进行用户认证以及Session/Cookie等各方面的Web应用。 内容涵盖文本处理、表单处理、Session管理、数据库交互、加/解密、国际化和标准化,以及程序

    大小:4.6 MBWeb编程

  • go语言中文教程及手册

    Go 编程语言是一个使得程序员更加有效率的开源项目。Go 是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新ᓆ的类型系统允许构建有ᧄ性的模块化程序。Go编译到机器码非常快速,同时具有便利的垃圾回收和强大的运行时反射。它是快速的、静态类型编译语言,但是感觉上是动态类型的,解释型语言。 《go语言中文教程及手册》包含了语言结构、基础语法、数据类型、语言变量、语言常量以及运算符等内容的介绍

    大小:1.89 MBgo语言

  • Go语言高级开发与实战

    Go语言高级开发与实战

    编辑推荐 Go语言高级开发与实战聚焦Go语言的高级开发技巧和应用实战。高级进阶、重点解析Go语言高级开发知识;源码再用,随书源码可直接二次开发进行实战部署。作者廖显东,高级软件架构师,全栈开发者,技术极客,Gopher,开源爱好者。对Go、Rust等流行开发语言有深入实践和研究。对大型电子商务系统开发、高并发架构、分布式架构、微服务、大数据、人工智能算法等领域有深入实践和研究。建议采用以线上销售为主、线上线下相结合的营销方式

    大小:95.1 MBGo语言

  • go语言入门:新手参考

    go命令和常用工具 go install:编译并把编译好的结果移到$GOPATH/pkg或者$GOPATH/bin go build :编译(项目和文件) 常用参数: -o 指定输出的文件名,可以带上路径,例如 go build -o out main.go -i 安装相应的包,编译+go install -v 打印出来我们正在编译的包名 go get:安装第三方包 常用命令: -d 只下载不安装 -u 强制使用网络去更新包和它的依赖包 -v 显示执行的命令 go clean:移除当前源码包和关联源码包里

    大小:2.6 MBgo语言

  • 《Go语言项目开发上手指南》源代码

    《Go语言项目开发上手指南》源代码

    《 Go语言项目开发上手指南 》从实践出发讲解Go语言编程的基础和进阶知识。全书共分为14章,第1~4章讲述Go的基础知识,如基础语法、内置库的使用等,第5~14章介绍编写图表库、实现命令行工具、网络爬虫Web编程、GraphQL编程和面向接口编程等,将Go的核心知识和应用拆分到不同的应用场景中进行讲解。 本书适合对Go语言的应用已经有一定基础,并希望能够在Web开发方面、接口编程方面结合Go语言来实现进阶学习的技术人员学习和参考。 封面图 目录 前言

    大小:2.95 MBGo语言配套资源

  • Go语言定制指南

    Go语言定制指南

    Go语言程序设计与实现教程,Go语言编程实战自学,剖析Go语言底层运行机制,学习编译器原理,提升编程技艺,提高编写效率,附赠源代码 编辑推荐 1.深入浅出,接触核心 理解Go语言语法树的工作原理,提升编程技艺,学习编译器的原理与实现,编写更效率的代码;通过理解简单的凹语言,深刻理解Go语言特性,获得自制一门编程语言的启发。 2.内容针对性与专业性强 本书面向已经熟练掌握Go语言并在进行项目开发的程序员,也适合想深入了解Go语言底

    大小:40.5 MBGo语言

  • Go语言精进之路:从新手到高手的编程思想、方法和技巧

    Go语言精进之路:从新手到高手的编程思想、方法和技巧

    内容简介 Go入门容易,精进难,如何才能像Go开发团队那样写出符合Go思维和语言惯例的高质量代码呢? 本书将从编程思维和实践技巧2个维度给出答案,帮助你在Go进阶的路上事半功倍。 编程思维层面 只有真正领悟了一门语言的设计哲学和编程思维,并能将之用于实践,才算精通了这门语言。本书从Go语言设计者的视角对Go背后的设计哲学和编程思想进行了梳理和分析,指引读者体会那些看似随意实则经过深思熟虑的设计背后的秘密。 实践技巧层面 实践

    大小:51.2 MBGo语言

参与送书

学习笔记

9小时32分钟前回答

php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】

本文实例讲述了php实现有序数组打印或排序的方法。分享给大家供大家参考,具体如下: 有序的数组打印或排序对于php来讲非常的简单了这里整理了几个不同语言的做法的实现代码,具体的我们一起来看这篇php中有序的数组打印或排序的例子吧. 最近有个面试题挺火的——把2个有序的数组打印或排序,刚看到这个题的时候也有点蒙,最优的算法肯定要用到有序的特性. 思考了一会发现……

16小时30分钟前回答

Python和Go语言的区别总结

什么是Python? Python是一种功能强大的高级编程语言,主要用于科学和工程计算。它是一种高效的语言,优雅务实,简单而强大,适合新手和专业人士的编程。 Python支持多种编程范例,并提出了一个大型标准库,包括面向对象,命令式,功能性和程序性。 Go是什么? Go是一种通用编程语言,由Google设计;它借鉴了许多其他许多好主意语言,同时避免导致复杂性和不可靠代码的功能……

11小时30分钟前回答

放弃 Python 转向 Go语言有人给出了 9 大理由

转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时。今年 Stream 团队的主要编程语言从 Python 转向了 Go。本文解释了其背后的九大原因以及如何做好这一转换。 一、为什么使用 Go 原因 1:性能 Go 极其地快。其性能与 Java 或 C++相似。在我们的使用中,Go 一般比 Python 要快 30 倍。以下是 Go 与 Java 之间的基准比较: 原因 2:语言性能很重要 对很多应用来……