作者:empty 页数:501 出版社:empty |
这本书能够帮助你成为一个更棒的Go开发者。我尽最大努力将这本书理论与实战兼顾,但是只有你的反馈才是评价这本书成功与否的标准,另外,本书的代码示例都是独立的,意味着你可以单独使用或者以其为模板创建更加复杂的应用,每章最后的练习题要亲自动手去敲,有什么问题尽管联系我,因为你的反馈与建议可以让木书的下一版术更加完善!
介绍
[0前言]
00.1前言
00.2面向读者
00.3章节概览
00.4更多信息
[1Go与操作系统]
00.4.1代码规范约定
01.1本书结构
01.2Go的历史
01.3为什么是Go
01.4Go的优点
01.4.1Go是完美的么
[2Go内部机制]
02.1本章概述
02.2编译器
02.3垃圾回收
02.3.1三色算法
03.1.1 for循环
03.1.2 while循环
03.1.3 range关键宁
03.1.4 for祝环代码示例
03.3.1切片基本操作
03.3.2切片的扩容
03.3.3字节切片
03.34copy() 函数
03.3.5多维切片
03.3.6使用切片的代码示例
03.3.7使用s or.Slice() 排序
03.4.1Map值为ni的玩
03.4.2何时该使用Map?
03.5.1常量生成器:iota
03.7.1解析时间
03.7.2解析时间的代码示例
03.7.3解析日期
03.7.4解析日期的代码示例
03.7.5格式化时间与日期
04.2.1结构体指针
04.2.2使用new关键字
04.4.1理论知识
04.4.2简单的正则表达式示例
04.4.3高级的正则表达式示例
04.4.4正则匹配IPv 4地址
02.3.2垃圾回收器背后的更多操作
02.3.3Unsafeoode
02.3.4关于unsafe包
02.3.5另一个usafe包的例了
02.5C中调用Go函数
02.5.1Go Package
02.52C代码
02.6dsfer关键字
02.7Panic和Recover
[3Go基本数据类型]
03.1Go循环
03.3Go切片
03.4Go快射(map)
03.5Go常量
03.6Go指针
03.7时间与日期的处理技巧m
03.8延伸阅读1.5.7
03.9练习1.5.8
03.10本章小结1.5.9
4组合类型的使用1.6
04.1关于组合类型1.6.1
04.2结构体1.6.2
04.3元组1.6.3
04.4正则表达式与模式匹配1.6.4
04.5字符串mm1.6.5
04.5.1rune是什么?
04.5.2关于Unicode的包
04.5.3关于字符串处理的包
05.3.1Go语言实现二叉树
05.3.2二叉树的侃点
05.4.1Go语言实现哈希表
05.4.2实现查找功能
05.4.3哈希表的优点
05.5.1Go语吉实现链表
05.5.2链表的优点
05.6.1Go语言实现双向链表
05.6.2双向链表的优点
05.7.1Go语言实现队列
05.8.1Go语言实现栈
05.9 container包
05.9.1使用container/heap
06.2.1匿名函数
06.2.2多返问值的函数
06.2.3可命名的函数返回值
06.2.4参数为指针的函数
06.2.5返回值为指针的丽
06.2.6闭包
06.2.7函数作为参数
07.4.1接的使用
08.3io, Reader和lo.Wrt er接
04.6 switch语句
04.7计算Pi的精确值
04.8实现简单的K-V存储
04.9延展阅读
04.10练习
04.11本小结
5数据结构
05.1图和节点
05.2算法复杂度
05.3Go语言中的二叉树
05.4Go语言中的哈希表
05.5Go语言中的链表
05.6Go语言中的双向链表
05.7Go语言中的队列
05.8Go语言中的栈
05.9.2使用container/list
05.9.3使用container/ring
05.10生成随机数
05.10.1生成随机字符甲
05.11在展阅读
05.12练习
05.13本章小结
6Go package中不为人知的知识
06.1关于Go packages
06.2Go函数
06.3设计你的Go packages
[7反射和接]
07.1类型方法
07.2Go的接
07.3类型断言
07.4设计接
07.4.2 Switch用于类型判断
07.5反射
07.5.1使用反射的简单示例
07.5.2反射进阶
07.5.3反射的三个缺点
07.6Go的0OP思想
07.7延展阅读
07.8练习
07.9本章小结
8GoUNIX系统编程
08.1关于UNIX进程
08.2tlag包
08.3.1缓冲和无缓冲的文件输入和输出
08.4bufio包
08.5读取文本文件
08.5.1逐行读取文本文件
08.5.2退词读取文本文件
08.5.3逐字符读取文本文件
08.5.4从/devi random中读取
08.6从文件中读取所需的数据量
08.7为什么我们使用二进制格式
08.8读取CSV文
08.9写入文件
08.10从微盘加载和保存数据
08.11再看strng s包
08.12关于by les包
08.13文件权限
08.14处理Unix信号
08.14.1处理两种信号
08.14.2处理所有信号
08.15Unix管道编程
08.16历目录树
08.17使用e PBF
08.18关于syscall.Ptrace Regs
08.19跟踪系统调用
08.20 UserID和groupID
08.21其他资源
08.22练习
08.23总结
09.1.1Go调度器
09.1.2并发与并行
09.2Go routines
09.3优雅地结束go routines
9井发-Go rou ies, Channel和Pipeline
09.1关于进程,线程和Go协程
09.2.1创建一个Go routine
09.2.2创建多个Go routine
10.1.1环境变量GO MAX PROCS
10.2 select关键字
10.3go routine超时检查的两种方式
10.3.1方式1
10.3.2方式2
09.3.1当Add(和Done() 的数量不匹配时会发生什么:
09.4 Channel(通道)
09.4.1通道的写入
09.4.2从通道接收数据
09.4.3通道作为函数参数传递
09.5管道
09.6延展阅读
09.7练习
09.8本章小结
10Go井发-进阶讨论
10.1重调度器
10.4重温Channel(通道)
1.11.41.11.3.1
10.4.1信号通道
10.4.2可缓冲通道
10.4.3值为nil的通道
10.4.4传送channel的通道
10.4.5指定通道的执行顺序
10.5通过共享变量来共享内存
10.5.1sync.Mutex类型
10.7.1 context使用的高级示例
10.5.1.1忘记解锁mutex的后果
10.5.2sync.RW Mutex类型
10.5.3通过go routine共享内存
10.6竞争状态
10.7关丁context包
10.7.2工作池
10.8延展阅读
10.9练习
10.10木章小结
11代码测试,优化及分析
11.1本章使用的Go版本
11.1.11.10和1.9版本对比
11.2安装beta或者RC版本
11.3关于优化
11.4优化你的Go代码
11.5分析Go代码
11.5.1标准库net http/ppr of
11.5.2代码分析示例
11.5.3用于分析的第三方包
11.5.4Go分析器的web接
11.6go.tool的代码追踪
11.7测试
11.5.4.1使用web接的分析示例
11.5.4.2 Graphviz快览
11.7,1编程试代码
11.8基准测试
11.8.1基准测试示例
11.8.2错误的基准测试函数
11.9基准测试的缓冲写入
11.10出隐藏的代码
11.11交叉编译
11.12创建示例函数
11.13生成文档
11.14延展阅读
11.15练习
11.16本章小络
12Go网络编程基础
12.1关于net http, net和http.RoundTrip per
12.1.1http.Response类型
12.1.2http.Request类型
12.10.3设置超时的另外一种方法
13.2.1另一个版本的TCP客户
13.3.1另个版本的TCP服务器
13.6.1简洁的并发TCP服务器
13.7.1RPC客户端
13.7.2RPC服务器
13.8底层网络编程
13.8.1获取ICMP数据
13.9接下来的任务
12.1.3http.Transport类型
12.2关于TCP/IP
12.3关于IPv 4和IPv 6
12.4命令行工具netcat
12.5读取网络接的配置文件
12.6实现DNS查询
12.6.1取域名的NS记录
12.6.2获取域名的MX记录
12.7Go实现web服务器
12.7.1分析HTTP服务
12.7.2用Go创建网站
12.8追踪HTTP
12.8.1测试HTTP handier
12.9Go实现web客户端
12.9.1Goweb客户端进阶
12.10HTTP连接超时
12.10.1SetDeadine介绍
12.10.2服务增设置超时时间
12.11抓包工具Wire shark和t shark
12.12延展阅读
12.13练习
12.14本章小结
13网络编程-构建服务器与客户端
13.1Go标准库-net
13.2TCP客户端