Mastering_Go_ZH_CN
首页
打印
首页
下载pdf
目录 搜索
  • 介绍
  • 前言
    • 前言
    • 章节概览
    • 更多信息
      • 代码规范约定
  • Go与操作系统
    • 本书结构
    • Go的历史
    • 为什么是Go
    • Go的优点
      • Go是完美的么
  • Go内部机制
    • 本章概述
    • 编译器
    • 垃圾回收
      • 三色算法
      • 垃圾回收器背后的更多操作
      • Unsafe code
      • 关于unsafe包
      • 另一个usafe包的例子
    • C中调用Go函数
      • Go Package
      • C代码
    • defer关键字
    • Panic和Recover
  • Go基本数据类型
    • Go循环
      • for循环
      • while循环
      • range关键字
      • for循环代码示例
    • Go切片
      • 切片基本操作
      • 切片的扩容
      • 字节切片
      • copy()函数
      • 多维切片
      • 使用切片的代码示例
      • 使用sort.Slice()排序
    • Go 映射(map)
      • Map值为nil的坑
      • 何时该使用Map?
    • Go 常量
      • 常量生成器:iota
    • Go 指针
    • 时间与日期的处理技巧
      • 解析时间
      • 解析时间的代码示例
      • 解析日期
      • 解析日期的代码示例
      • 格式化时间与日期
    • 延伸阅读
    • 练习
    • 本章小结
  • 组合类型的使用
    • 关于组合类型
    • 结构体
      • 结构体指针
      • 使用new关键字
    • 元组
    • 正则表达式与模式匹配
      • 理论知识
      • 简单的正则表达式示例
      • 高级的正则表达式示例
      • 正则匹配IPv4地址
    • 字符串
      • rune是什么?
      • 关于Unicode的包
      • 关于字符串处理的包
    • switch语句
    • 计算Pi的精确值
    • 实现简单的K-V存储
    • 延展阅读
    • 练习
    • 本章小结
  • 数据结构
    • 图和节点
    • 算法复杂度
    • Go 语言中的二叉树
      • Go 语言实现二叉树
      • 二叉树的优点
    • Go 语言中的哈希表
      • Go 语言实现哈希表
      • 实现查找功能
      • 哈希表的优点
    • Go 语言中的链表
      • Go 语言实现链表
      • 链表的优点
    • Go 语言中的双向链表
      • Go 语言实现双向链表
      • 双向链表的优点
    • Go 语言中的队列
      • Go 语言实现队列
    • Go 语言中的栈
      • Go 语言实现栈
    • container 包
      • 使用 container/heap
      • 使用 container/list
      • 使用 container/ring
    • 生成随机数
      • 生成随机字符串
    • 延展阅读
    • 练习
    • 本章小结
  • Go package中不为人知的知识
    • 关于Go packages
    • Go函数
      • 匿名函数
      • 多返回值的函数
      • 可命名的函数返回值
      • 参数为指针的函数
      • 返回值为指针的函数
      • 闭包
      • 函数作为参数
    • 设计你的Go packages
  • 反射和接口
    • 类型方法
    • Go的接口
    • 类型断言
    • 设计接口
      • 接口的使用
      • Switch用于类型判断
    • 反射
      • 使用反射的简单示例
      • 反射进阶
      • 反射的三个缺点
    • Go的OOP思想
    • 延展阅读
    • 练习
    • 本章小结
  • Go UNIX系统编程
    • 关于UNIX进程
    • flag包
    • io.Reader和io.Writer接口
      • 缓冲和无缓冲的文件输入和输出
    • bufio包
    • 读取文本文件
      • 逐行读取文本文件
      • 逐词读取文本文件
      • 逐字符读取文本文件
      • 从/dev/random中读取
    • 从文件中读取所需的数据量
    • 为什么我们使用二进制格式
    • 读取CSV文件
    • 写入文件
    • 从磁盘加载和保存数据
    • 再看strings包
    • 关于bytes包
    • 文件权限
    • 处理Unix信号
      • 处理两种信号
      • 处理所有信号
    • Unix管道编程
      • 用`Go`实现`cat(1)`程序
    • 遍历目录树
    • 使用ePBF
    • 关于syscall.PtraceRegs
    • 跟踪系统调用
    • User ID和group ID
    • 其他资源
    • 练习
    • 总结
  • 并发-Goroutines,Channel和Pipeline
    • 关于进程,线程和Go协程
      • Go调度器
      • 并发与并行
    • Goroutines
      • 创建一个Goroutine
      • 创建多个Goroutine
    • 优雅地结束goroutines
      • 当Add()和Done()的数量不匹配时会发生什么?
    • Channel(通道)
      • 通道的写入
      • 从通道接收数据
      • 通道作为函数参数传递
    • 管道
    • 延展阅读
    • 练习
    • 本章小结
  • Go 并发-进阶讨论
    • 重温调度器
      • 环境变量 GOMAXPROCS
    • select关键字
    • goroutine超时检查的两种方式
      • 方式1
      • 方式2
    • 重温Channel(通道)
      • 信号通道
      • 可缓冲通道
      • 值为nil的通道
      • 传送channel的通道
      • 指定通道的执行顺序
    • 通过共享变量来共享内存
      • sync.Mutex类型
        • 忘记解锁mutex的后果
      • sync.RWMutex类型
      • 通过goroutine共享内存
    • 竞争状态
    • 关于context包
      • context使用的高级示例
      • 工作池
    • 延展阅读
    • 练习
    • 本章小结
  • 代码测试,优化及分析
    • 本章使用的Go版本
      • 1.10和1.9版本对比
    • 安装beta或者RC版本
    • 关于优化
    • 优化你的Go代码
    • 分析Go代码
      • 标准库net/http/pprof
      • 代码分析示例
      • 用于分析的第三方包
      • Go分析器的web接口
        • 使用web接口的分析示例
        • Graphviz快览
    • go tool的代码追踪
    • 测试
      • 编程测试代码
    • 基准测试
      • 基准测试示例
      • 错误的基准测试函数
    • 基准测试的缓冲写入
    • 揪出隐藏的代码
    • 交叉编译
    • 创建示例函数
    • 生成文档
    • 延展阅读
    • 练习
    • 本章小结
  • Go网络编程基础
    • 关于net/http,net和http.RoundTripper
      • http.Response类型
      • http.Request类型
      • http.Transport类型
    • 关于TCP/IP
    • 关于IPv4和IPv6
    • 命令行工具netcat
    • 读取网络接口的配置文件
    • 实现DNS查询
      • 获取域名的 NS记录
      • 获取域名的 MX 记录
    • Go实现web服务器
      • 分析HTTP服务
      • 用Go创建网站
    • 追踪 HTTP
      • 测试 HTTP handler
    • Go实现web客户端
      • Go web客户端进阶
    • HTTP连接超时
      • SetDeadline 介绍
      • 服务端设置超时时间
      • 设置超时的另外一种方法
    • 抓包工具Wireshark和tshark
    • 延展阅读
    • 练习
    • 本章小结
  • 网络编程 - 构建服务器与客户端
    • Go 标准库-net
    • TCP 客户端
      • 另一个版本的 TCP 客户端
    • TCP 服务器
      • 另一个版本的 TCP 服务器
    • UDP 客户端
    • UDP 服务器
    • 并发 TCP 服务器
      • 简洁的并发TCP服务器
    • 远程调用(RPC)
      • RPC 客户端
      • RPC 服务器
    • 底层网络编程
      • 获取ICMP数据
    • 接下来的任务
    • 延展阅读
    • 练习
    • 本章小节
暂无相关搜索结果!

本文档使用 topgoer 发布

Go与操作系统

项目分享

扫一扫手机阅读

项目分享

扫一扫手机阅读