-
内容大纲
Go语言适合用来进行服务器编程与网络编程,包括Web应用编程等。本书详细讲解了Go语言数据类型、关键字、字面量、基本语法等基础概念及Go项目的工程构建、测试、编译与运行等;深入讲解了协程(goroutine)和通道(channel)等与并发编程有关的概念;还介绍了系统标准库、网络编程和第三方包。读者掌握本书内容后,可以顺利进行实际项目开发。
本书适合Go语言初学者和有一定经验的程序员阅读。
书中代码可免费下载(扫描封底二维码)。 -
作者介绍
-
目录
出版说明
前言
第1章 Go语言简介
1.1 为什么要学Go语言
1.2 Go语言安装
1.3 Go语言开发工具
第2章 Go语言编程基础
2.1 数据类型
2.1.1 基础数据类型
2.1.2 复合数据类型
2.2 变量
2.2.1 变量以及声明
2.2.2 零值(nil)
2.3 常量
2.3.1 常量定义
2.3.2 iota
2.3.3 字面量(literal)
2.4 运算符
2.4.1 内置运算符
2.4.2 运算符优先级
2.4.3 几个特殊运算符
2.5 字符串
2.5.1 字符串介绍
2.5.2 字符串拼接
2.5.3 字符串处理
2.6 流程控制
2.6.1 switch语句
2.6.2 select语句
2.6.3 for语句
2.6.4 for-range结构
2.6.5 if语句
2.6.6 break语句
2.6.7 continue语句
2.6.8 标签
2.6.9 goto语句
第3章 作用域
3.1 关于作用域
3.1.1 局部变量与全局变量
3.1.2 显式与隐式代码块
3.2 约定和惯例
3.2.1 可见性规则
3.2.2 命名规范以及语法惯例
3.2.3 注释
第4章 代码结构化与项目管理
4.1 包(package)
4.1.1 包的概念
4.1.2 包的初始化
4.1.3 包的导入
4.1.4 标准库
4.1.5 从GitHub安装包
4.1.6 导入外部安装包
4.2 Go项目开发与编译
4.2.1 项目结构
4.2.2 使用Godoc
4.2.3 Go程序的编译
4.2.4 Go modules包依赖管理
第5章 复合数据类型
5.1 数组(array)
5.1.1 数组定义
5.1.2 数组声明与使用
5.2 切片(slice)
5.2.1 切片介绍
5.2.2 切片重组(reslice)
5.2.3 陈旧的切片(Stale Slices)
5.3 字典(map)
5.3.1 字典介绍
5.3.2 range语句中的值
第6章 type关键字
6.1 type自定义类型
6.2 type定义类型别名
第7章 错误处理与defer
7.1 错误处理
7.1.1 错误类型(error)
7.1.2 panic
7.1.3 recover
7.2 关于defer
7.2.1 defer的三个规则
7.2.2 使用defer计算函数执行时间
第8章 函数
8.1 函数(function)
8.1.1 函数介绍
8.1.2 函数调用
8.1.3 内置函数
8.1.4 递归与回调
8.1.5 匿名函数
8.1.6 变参函数
第9章 结构体和接口
9.1 结构体(struct)
9.1.1 结构体介绍
9.1.2 结构体特性
9.1.3 匿名字段
9.1.4 嵌入与聚合
9.1.5 命名冲突
9.2 接口(interface)
9.2.1 接口是什么
9.2.2 接口嵌入
9.2.3 类型断言
9.2.4 接口与动态类型
9.2.5 接口的提取
9.2.6 接口的继承
第10章 方法
10.1 方法的定义
10.1.1 接收器(receiver)
10.1.2 方法表达式与方法值
10.1.3 自定义类型方法与匿名嵌入
lO.1.4 函数和方法的区别
10.2 指针方法与值方法
10.2.1 指针方法与值方法的区别
lO.2.2 接口变量上的指针方法与值方法
10.2.3 指针接收器和值接收器的选择
10.3 匿名类型的方法提升
1O.3.1 匿名类型的方法调用
10.3.2 方法提升规则
第ll章 面向对象与内存
11.1 面向对象
11.1.1 Go语言中的面向对象
11.1.2 多重继承
11.2 指针和内存
11.2.1 指针
11.2.2 new()和make()的区别
11.2.3 垃圾回收
第12章 并发处理
12.1 协程
12.1.1 协程与并发
12.1.2 协程使用
12.2 通道(channel)
12.3 同步与锁
12.3.1 互斥锁
12.3.2 读写锁
12.3.3 sync.WaitGroup
12.3.4 sync.Once
12.3.5 sync.Map
第13章 测试与调优
13.1 测试
13.1.1 单元测试
13.1.2 基准测试
13.2 调优
13.2.1 分析Go程序
13.2.2 用pprof调试
第14章 系统标准库
14.1 reflect包
14.1.1 反射(reflect)
14.1.2 反射的应用
14.2 unsafe包
14.2.1 unsafe包介绍
14.2.2 指针运算
14.3 sort包
14.3.1 sort包介绍
14.3.2 自定义sort.Interface排序
14.3.3 sort.Slice排序
14.4 os包
14.4.1 启动外部命令和程序
14.4.2 os/signal信号处理
14.5 fmt包
14.5.1 格式化I/O
14.5.2 格式化输出
14.6 flag包
14.6.1 命令行
14.6.2 参数解析
14.7 文件操作与I/O
14.7.1 文件操作
14.7.2 I/O读写
14.7.3 ioutil包读写
14.7.4 bufio包读写
14.7.5 log包日志操作
第15章 网络服务
15.1 Socket
15.1.1 Socket基础知识
15.1.2 TCP与UDP
15.2 模板(Template)
15.2.1 text/template包
15.2.2 html/template包
15.2.3 模板语法
15.3 net/http包
15.3.1 http Request
15.3.2 http Response
15.3.3 http Client
15.3.4 http Server
15.3.5 自定义类型Handler
15.3.6 将函数直接作为Handler
15.3.7 中间件
15.3.8 搭建静态站点
15.4 context包
15.4.1 context包介绍
15.4.2 上下文应用
第16章 数据格式与存储
16.1 数据格式
16.1.1 序列化与反序列化
16.1.2 JSON数据格式
16.1.3 将JSON数据反序列化到结构体
16.1.4 反序列化任意JSON数据
16.1.5 JSON数据编码和解码
16.1.6 JSON数据延迟解析
16.1.7 Protocol Buffer数据格式
16.2 MySQL数据库
16.2.1 database/sql包
16.2.2 MySQL数据库操作
16.3 LevelDB与BoltDB数据库
16.3.1 LevelDB数据库操作
16.3.2 BoltDB数据库操作
第17章 网络爬虫
17.1 CollV网络爬虫框架
17.2 goquery HTML解析
第18章 Web框架——Gin
18.1 关于Gin
18.2 Gill实际应用
18.2.1 静态资源站点
18.2.2 构建动态站点
18.2.3 中间件的使用
18.2.4 RESTful API接口
参考文献
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...