Go语言开发实战(慕课版)

作者
千锋教育高教产品研发部
丛书名
信息技术人才培养系列规划教材
出版社
人民邮电出版社
ISBN
9787115515780
简要
简介
内容简介书籍计算机书籍 本书共有14章,内容包括:初识Go语言、Go语言的基本语法、Go语言的流程控制、函数与指针、Go语言的内置容器、Go语言的常用内置包、Go语言面向对象编程、Go语言异常处理、Go语言文件IO操作、Go语言网络编程、Go语言数据库编程、Go语言并发编程、Go语言密码学算法、Beego框架项目实战。
目录
第1章 初识Go语言 1


1.1 Go语言的发展历史 1


1.2 Go语言的特性 2


1.2.1 Go语言的特点和优势 2


1.2.2 使用Go语言的项目与企业 3


1.3 安装和配置Golang 3


1.3.1 Windows版本安装 4


1.3.2 Mac OS版本安装 6


1.3.3 Linux版本安装 7


1.4 搭建集成开发环境GoLand 7


1.4.1 GoLand的下载及安装 7


1.4.2 GoLand的使用 8


1.4.3 编写第一个程序HelloWorld 8


1.4.4 GoLand的快捷键 11


1.5 Go语言的结构组成及编码规范 11


1.5.1 Go语言的结构组成 11


1.5.2 Go语言的标识符 12


1.5.3 Go语言的编码规范 14


1.6 本章小结 15


1.7 习题 15


第2章 Go语言的基本语法 16


2.1 变量 16


2.1.1 变量的概念 16


2.1.2 变量声明 17


2.1.3 变量多重赋值 18


2.1.4 匿名变量 19


2.2 数据类型 19


2.2.1 整型 20


2.2.2 浮点型 20


2.2.3 复数型 21


2.2.4 布尔型 21


2.2.5 字符串 21


2.2.6 字符 22


2.3 打印格式化 23


2.3.1 通用打印格式 23


2.3.2 布尔型打印格式 23


2.3.3 整型打印格式 24


2.3.4 浮点型与复数型的打印格式 25


2.3.5 字符串与字节数组的打印格式 27


2.4 数据类型转换 27


2.4.1 基本语法 27


2.4.2 浮点型与整型之间转换 28


2.4.3 整型转字符串类型 28


2.5 常量 30


2.5.1 声明方式 30


2.5.2 常量用于枚举 30


2.5.3 iota 31


2.6 类型别名与类型定义 33


2.7 Go语言的运算符 33


2.7.1 算术运算符 34


2.7.2 关系运算符 35


2.7.3 逻辑运算符 36


2.7.4 位运算符 37


2.7.5 赋值运算符 40


2.7.6 其他运算符 41


2.8 运算符优先级 42


2.9 本章小结 43


2.10 习题 44


第3章 Go语言的流程控制 45


3.1 流程控制概述 45


3.1.1 条件判断语句 45


3.1.2 条件分支语句 45


3.1.3 循环语句 46


3.1.4 循环控制语句 46


3.2 if条件判断语句 46


3.2.1 语法结构 46


3.2.2 使用案例 47


3.2.3 特殊写法 48


3.3 if嵌套语句 49


3.3.1 语法结构 49


3.3.2 使用案例 49


3.4 switch分支语句 50


3.4.1 语法结构 50


3.4.2 使用案例 51


3.4.3 类型转换 52


3.5 for循环语句 53


3.5.1 语法结构 53


3.5.2 使用案例 57


3.6 for嵌套循环语句 59


3.6.1 语法结构 59


3.6.2 使用案例 59


3.7 循环控制语句 61


3.7.1 break语句 61


3.7.2 continue语句 62


3.7.3 goto语句 63


3.8 本章小结 64


3.9 习题 64


第4章 Go语言的函数与指针 66


4.1 函数 66


4.1.1 函数声明 66


4.1.2 变量作用域 67


4.1.3 函数变量(函数作为值) 69


4.1.4 匿名函数 71


4.1.5 闭包 73


4.1.6 可变参数 76


4.1.7 递归函数 77


4.2 指针 79


4.2.1 指针的概念 79


4.2.2 声明指针 79


4.2.3 空指针 82


4.2.4 使用指针 82


4.2.5 指针数组 83


4.2.6 指针的指针 84


4.3 函数的参数传递 85


4.3.1 值传递(传值) 85


4.3.2 引用传递(传引用) 85


4.3.3 值传递和引用传递的细节问题 89


4.4 本章小结 90


4.5 习题 90


第5章 Go语言的内置容器 92


5.1 数组 92


5.1.1 数组的概念 92


5.1.2 数组的语法 92


5.1.3 数组的长度 93


5.1.4 遍历数组 94


5.1.5 多维数组 94


5.1.6 数组是值类型 96


5.2 切片 97


5.2.1 切片的概念 97


5.2.2 切片的语法 97


5.2.3 len()和cap()函数 99


5.2.4 切片是引用类型 100


5.2.5 append()和copy()函数 101


5.3 map 104


5.3.1 map的概念 104


5.3.2 map的语法 105


5.3.3 delete()函数 107


5.3.4 map是引用类型 108


5.4 本章小结 109


5.5 习题 109


第6章 Go语言的常用内置包 111


6.1 字符串处理概述 111


6.1.1 字符串处理包简介 111


6.1.2 字符串的遍历 111


6.2 strings包的字符串处理函数 113


6.2.1 检索字符串 113


6.2.2 分割字符串 116


6.2.3 大小写转换 117


6.2.4 修剪字符串 118


6.2.5 比较字符串 120


6.3 strconv包的常用函数 122


6.3.1 Parse类函数 122


6.3.2 Format类函数 123


6.4 regexp正则表达式包 125


6.4.1 正则表达式简介 125


6.4.2 正则表达式中主要元字符 125


6.4.3 regexp包中核心函数及方法


介绍 127


6.5 time包 130


6.6 math包 133


6.7 随机数 134


6.7.1 rand包的核心方法介绍 135


6.7.2 获取随机数的几种方式 135


6.8 键盘输入 137


6.8.1 Scanln()函数 137


6.8.2 随机数+键盘输入案例——猜


数字游戏 138


6.9 本章小结 139


6.10 习题 140


第7章 Go语言面向对象编程 141


7.1 面向对象思想概述 141


7.1.1 面向过程与面向对象 141


7.1.2 Go语言面向对象 142


7.2 结构体 143


7.2.1 定义结构体与实例化 143


7.2.2 结构体的语法糖 144


7.2.3 结构体是值类型 145


7.2.4 结构体的深拷贝和浅拷贝 147


7.2.5 结构体作为函数的参数及


返回值 148


7.2.6 匿名结构体和匿名字段 150


7.2.7 结构体嵌套 152


7.3 方法 155


7.3.1 方法的概念 155


7.3.2 基本语法 156


7.3.3 方法和函数 157


7.3.4 方法继承 158


7.3.5 方法重写 159


7.4 接口 160


7.4.1 接口的概念 160


7.4.2 接口的定义与实现 161


7.4.3 duck typing 162


7.4.4 多态 164


7.4.5 空接口 166


7.4.6 接口对象转型 167


7.5 本章小结 170


7.6 习题 170


第8章 Go语言异常处理 172


8.1 error 172


8.1.1 error接口 172


8.1.2 创建error对象 174


8.1.3 自定义错误 175


8.2 defer 177


8.2.1 函数中使用defer 177


8.2.2 方法中使用defer 178


8.2.3 defer参数 179


8.2.4 堆栈的推迟 179


8.3 panic和recover机制 180


8.3.1 panic 180


8.3.2 recover 182


8.4 本章小结 183


8.5 习题 183


第9章 Go语言文件I/O操作 185


9.1 文件信息 185


9.1.1 文件概述 185


9.1.2 FileInfo接口 185


9.1.3 文件路径 188


9.2 文件常规操作 189


9.2.1 创建 189


9.2.2 创建文件 190


9.2.3 打开和关闭文件 191


9.2.4 删除文件 192


9.3 读写文件及复制文件 193


9.3.1 读取文件 193


9.3.2 写入文件 194


9.3.3 复制文件 196


9.4 ioutil包 197


9.4.1 ioutil包核心函数 197


9.4.2 示例代码 197


9.5 bufio包 199


9.5.1 缓冲区的原理 199


9.5.2 bufio.Reader结构体 200


9.5.3 bufio.Writer结构体 201


9.5.4 Scanner 203


9.6 本章小结 205


9.7 习题 205


第10章 Go语言网络编程 206


10.1 HTTP概述 206


10.1.1 HTTP的概念 206


10.1.2 HTTP请求方法 207


10.1.3 HTTPS通信原理 207


10.1.4 HTTPS的作用 207


10.2 HTTP协议客户端实现 208


10.3 HTTP协议服务端实现 213


10.3.1 启动Web服务的几种方式 213


10.3.2 服务器端获取客户端请求的


数据 218


10.4 Golang模板 221


10.4.1 模板的概念 221


10.4.2 基本语法 221


10.5 JSON编码 224


10.5.1 JSON简介 224


10.5.2 map转JSON 225


10.5.3 结构体转JSON 226


10.5.4 结构体字段标签 227


10.5.5 匿名字段 228


10.5.6 注意事项 228


10.6 JSON解析 229


10.6.1 JSON转切片 229


10.6.2 JSON转结构体 229


10.6.3 结构体字段标签 230


10.6.4 匿名字段 231


10.7 本章小结 232


10.8 习题 232


第11章 Go语言数据库编程 233


11.1 数据库介绍 233


11.2 MySQL数据库的使用 234


11.2.1 服务启动和停止MySQL服务 234


11.2.2 登录和退出MySQL数据库 236


11.2.3 MySQL数据库基本操作 238


11.3 MySQL数据类型 238


11.3.1 数值类型 238


11.3.2 日期时间类型 239


11.3.3 字符串类型 239


11.4 SQL基础入门 240


11.4.1 SQL语言简介 240


11.4.2 SQL分类 240


11.4.3 DDL语句基本用法 241


11.4.4 DML语句基本用法 243


11.4.5 DQL语句基本用法 244


11.5 Go程序操作MySQL数据库 245


11.5.1 安装MySQL模块 245


11.5.2 导入包 246


11.5.3 连接数据库 246


11.5.4 增删改数据 246


11.5.5 查询数据 247


11.5.6 示例代码 248


11.6 本章小结 253


11.7 习题 253


第12章 Go语言并发编程 255


12.1 并发和并行 255


12.1.1 单道程序与多道程序 255


12.1.2 并发与并行的区别 255


12.2 进程和线程 256


12.2.1 程序与进程 256


12.2.2 进程与线程的区别 256


12.2.3 进程与线程的联系 256


12.3 Goroutine 257


12.3.1 协程的概念 257


12.3.2 Go语言中的协程 257


12.3.3 Coroutine与Goroutine 257


12.3.4 普通函数创建Goroutine 258


12.3.5 匿名函数创建Goroutine 260


12.3.6 启动多个Goroutine 261


12.3.7 调整并发的运行性能 261


12.4 channel 262


12.4.1 channel的概述 262


12.4.2 创建channel类型 262


12.4.3 使用channel发送数据 263


12.4.4 通过channel接收数据 263


12.4.5 阻塞 265


12.4.6 关闭channel 266


12.4.7 缓冲channel 267


12.4.8 单向channel 270


12.5 time包中与channel相关的


函数 271


12.5.1 Timer结构体 271


12.5.2 NewTimer()函数 272


12.5.3 After()函数 273


12.6 select分支语句 273


12.6.1 执行流程 273


12.6.2 示例代码 274


12.7 sync包 275


12.7.1 同步等待组 276


12.7.2 互斥锁 277


12.7.3 读写互斥锁 279


12.7.4 条件变量 281


12.8 本章小结 283


12.9 习题 283


第13章 Go语言密码学算法 285


13.1 Hash算法 285


13.1.1 Hash的定义 285


13.1.2 流行的Hash算法 286


13.1.3 Hash与加密解密的区别 287


13.1.4 SHA-256 287


13.1.5 核心代码 288


13.2 对称加密算法 291


13.2.1 对称加密简介 291


13.2.2 DES和3DES算法 291


13.2.3 AES算法 292


13.2.4 AES的加密模式 292


13.2.5 填充方式 293


13.2.6 核心代码 293


13.3 非对称加密算法 299


13.3.1 非对称加密简介 299


13.3.2 非对称加密算法实现数字签名 299


13.3.3 RSA算法 300


13.3.4 核心代码 300


13.4 椭圆曲线加密算法和椭圆曲线数字


签名算法 304


13.4.1 椭圆曲线加密简介 304


13.4.2 数字签名的概念 305


13.4.3 核心代码 306


13.5 字符编码与解码 308


13.5.1 Base64 308


13.5.2 Base58 309


13.6 本章小结 311


13.7 习题 312


第14章 Beego框架项目


实战 313


14.1 Beego框架介绍及项目初始化


配置 313


14.1.1 Beego简介 313


14.1.2 Beego框架的主要特性 313


14.1.3 Beego安装 314


14.1.4 bee工具的使用 315


14.1.5 创建项目 315


14.1.6 结构分析 317


14.1.7 路由设置 320


14.2 Elm后台管理平台项目介绍 321


14.2.1 项目介绍 321


14.2.2 项目效果展示 321


14.2.3 整体架构简介 322


14.3 数据库配置及ORM映射 323


14.3.1 ORM简介 323


14.3.2 Beego项目中使用MySQL 323


14.3.3 数据导入 325


14.3.4 接口文档说明 325


14.3.5 模块开发 325


14.3.6 数据格式封装 327


14.4 Redis 328


14.4.1 Redis简介 328


14.4.2 Redis安装 328


14.4.3 Redis操作与使用 329


14.4.4 项目中使用Redis 330


14.4.5 登录管理员退出操作 331


14.4.6 文件操作 331


14.4.7 数据库表关系映射 333


14.5 项目功能完善 334


14.5.1 商户模块功能开发 334


14.5.2 食品模块功能开发 336


14.5.3 订单模块功能开发 338


14.5.4 添加数据记录模块开发 339


14.6 本章小结 342


14.7 习题 342





有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4