精通Go语言第2版 米哈里斯·托卡洛斯 开发工具Go语言编程开发 Go语言操作系统内部机制数据类型 Go语言操作系统 内部机制代码函数
9787302594857
¥
127.65
全新
库存5件
作者[美] 米哈里斯·托卡洛斯 刘晓雪 译
出版社清华大学出版社
ISBN9787302594857
出版时间2018-01
装帧平装
开本16开
页数718页
货号664290544559
上书时间2024-03-10
商品详情
- 品相描述:全新
- 商品描述
-
产品参数: ISBN编码:9787302594857
产品名称:精通Go语言(第2版)
定价:159
出版社:清华大学出版社
内容介绍: 《精通Go语言(第2版)》详细阐述了与Go语言相关的基本解决方案,主要包括Go语言和操作系统,理解Go语言的内部机制,处理Go语言中的基本数据类型,组合类型的使用,利用数据结构改进Go代码,Go包和函数,反射和接口,UNIX系统编程,Go语言中的并发编程—协程、通道和管道,Go语言的并发性—高级话题,代码测试、优化和分析,网络编程基础知识,网络编程—构建自己的服务器和客户端,Go语言中的机器学习等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
目录: 第1部分 第1章 Go语言和操作系统 3 1.1 Go语言的历史 3 1.2 Go语言的未来 4 1.3 Go语言的优点 4 1.3.1 Go语言是否完美 5 1.3.2 预处理器 5 1.3.3 godoc实用程序 6 1.4 编译Go代码 7 1.5 执行Go代码 8 1.6 两条Go语言规则 8 1.7 下载和使用外部的Go包 10 1.8 UNIX stdin、stdout和stderr 12 1.9 输出结果 12 1.10 使用标准输出 14 1.11 获取用户输入 16 1.11.1 :=和= 16 1.11.2 从标准输入中读取 17 1.11.3 与命令行参数协同工作 18 1.12 错误的输出结果 20 1.13 写入日志文件中 22 1.13.1 日志级别 22 1.13.2 日志工具 23 1.13.3 日志服务器 23 1.13.4 将信息发送至日志文件的Go程序 24 1.13.5 log.Fatal()函数 26 1.13.6 log.Panic()函数 27 1.13.7 写入自定义日志文件中 29 1.13.8 在日志项中输出行号 31 1.14 Go语言中的错误处理机制 32 1.14.1 错误数据类型 33 1.14.2 错误处理机制 35 1.15 使用Docker 37 1.16 练习和链接 42 1.17 本章小结 43 第2章 理解Go语言的内部机制 45 2.1 Go编译器 45 2.2 垃圾收集 47 2.2.1 三色算法 49 2.2.2 Go垃圾收集器的更多内容 52 2.2.3 映射、切片和Go垃圾收集器 53 2.2.4 不安全的代码 57 2.2.5 unsafe包 58 2.2.6 unsafe包的另一个示例 59 2.3 从Go程序中调用C代码 60 2.3.1 利用同一文件从Go程序中调用C代码 60 2.3.2 利用单独的文件从Go程序中调用C代码 61 2.3.3 C代码 61 2.3.4 Go代码 62 2.3.5 混合Go和C代码 63 2.4 从C代码中调用Go函数 64 2.4.1 Go包 65 2.4.2 C代码 66 2.5 defer关键字 67 2.6 panic()和recover()函数 71 2.7 两个方便的UNIX实用程序 74 2.7.1 strace工具 74 2.7.2 dtrace工具 75 2.8 Go环境 76 2.9 go env命令 78 2.10 Go汇编器 79 2.11 节点树 80 2.12 go build的更多内容 86 2.13 生成WebAssembly代码 88 2.13.1 WebAssembly简介 88 2.13.2 WebAssembly的重要性 89 2.13.3 Go和WebAssembly 89 2.13.4 示例 89 2.13.5 使用生成后的WebAssembly代码 90 2.14 一般的Go编码建议 92 2.15 练习和链接 93 2.16 本章小结 93 第3章 处理Go语言中的基本数据类型 95 3.1 数字数据类型 95 3.1.1 整数 96 3.1.2 浮点数 96 3.1.3 复数 96 3.1.4 Go 2中的数字字面值 98 3.2 Go语言中的循环 99 3.2.1 for循环 99 3.2.2 while循环 99 3.2.3 range关键字 100 3.2.4 多种Go循环示例 100 3.3 Go语言中的数组 102 3.3.1 多维数组 102 3.3.2 数组的缺点 105 3.4 Go语言中的切片 105 3.4.1 在切片上执行基本的操作 106 3.4.2 自动扩展 108 3.4.3 字节切片 109 3.4.4 copy()函数 109 3.4.5 多维切片 112 3.4.6 切片的另一个示例 112 3.4.7 利用sort.Slice()函数对切片进行排序 114 3.4.8 向切片中附加一个数组 116 3.5 Go语言中的映射 117 3.5.1 存储至nil映射中 119 3.5.2 何时应使用映射 120 3.6 Go语言中的常量 120 3.7 Go语言中的指针 124 3.8 时间和日期 127 3.8.1 与时间协同工作 128 3.8.2 解析时间 129 3.8.3 与日期协同工作 130 3.8.4 解析日期 130 3.8.5 修改日期和时间格式 132 3.9 度量Go语言中的命令和函数的执行时间 133 3.10 度量Go语言垃圾收集器的操作 135 3.11 Web链接和练习 136 3.12 本章小结 136 第4章 组合类型的使用 137 4.1 关于组合类型 137 4.2 Go语言中的结构 137 4.2.1 指向结构的指针 140 4.2.2 Go语言中的new关键字 142 4.3 Go语言中的元组 142 4.4 Go语言中的正则表达式和模式匹配 144 4.4.1 理论知识简介 144 4.4.2 简单的示例 144 4.4.3 高级示例 147 4.4.4 匹配IPv4地址 150 4.5 Go语言中的字符串 154 4.5.1 rune 156 4.5.2 unicode包 158 4.5.3 strings包 159 4.6 switch语句 163 4.7 计算高精度Pi值 167 4.8 生成Go语言中的键-值存储 170 4.9 Go语言和JSON格式 175 4.9.1 读取JSON数据 175 4.9.2 保存JSON数据 177 4.9.3 使用Marshal()和Unmarshal()函数 179 4.9.4 解析JSON数据 181 4.9.5 Go语言和XML 183 4.9.6 读取XML文件 186 4.9.7 自定义XML格式 188 4.10 Go语言和YAML格式 189 4.11 附加资源 190 4.12 练习和Web链接 190 4.13 本章小结 191 第2部分 第5章 利用数据结构改进Go代码 195 5.1 图和节点 195 5.2 度量算法的复杂度 196 5.3 二叉树 196 5.3.1 实现Go语言中的二叉树 197 5.3.2 二叉树的优点 199 5.4 Go语言中的哈希表 200 5.4.1 实现Go语言中的哈希表 201 5.4.2 实现查找功能 204 5.4.3 哈希表的优点 204 5.5 Go语言中的链表 205 5.5.1 实现Go语言中的链表 206 5.5.2 链表的优点 209 5.6 Go语言中的双向链表 210 5.6.1 实现Go语言中的双向链表 211 5.6.2 双向链表的优点 214 5.7 Go语言中的队列 214 5.8 Go语言中的栈 218 5.9 container包 221 5.9.1 使用container/heap 221 5.9.2 使用container/list 224 5.9.3 使用container/ring 226 5.10 在Go语言中生成随机数 227 5.11 生成安全的随机数 233 5.12 执行矩阵计算 234 5.12.1 矩阵的加法和减法 235 5.12.2 矩阵乘法 237 5.12.3 矩阵的除法 241 5.12.4 计算数组维度 246 5.13 求解数独谜题 247 5.14 附加资源 251 5.15 本章练习 251 5.16 本章小结 252 第6章 Go包和函数 253 6.1 Go包 253 6.2 Go语言中的函数 254 6.2.1 匿名函数 254 6.2.2 返回多个值的函数 255 6.2.3 命名函数的返回值 257 6.2.4 包含指针参数的函数 258 6.2.5 返回指针的函数 259 6.2.6 返回其他函数的函数 260 6.2.7 接收其他函数作为参数的函数 262 6.2.8 可变参数函数 263 6.3 开发自己的Go包 264 6.3.1 编译Go包 266 6.3.2 私有变量和函数 267 6.3.3 init()函数 267 6.4 Go模块 269 6.4.1 创建并使用Go模块 270 6.4.2 使用同一Go模块的不同版本 278 6.4.3 Go模块在Go语言中的存储位置 279 6.4.4 go mod vendor命令 280 6.5 创建较好的Go包 281 6.6 syscall包 282 6.7 go/scanner、go/parser和go/token包 286 6.7.1 go/ast包 287 6.7.2 go/scanner包 287 6.7.3 go/parser包 289 6.7.4 操作示例 292 6.7.5 利用给定的字符串长度查找变量名 293 6.8 文本和HTML模板 298 6.8.1 生成文本输出 299 6.8.2 构建HTML输出结果 301 6.9 附加资源 308 6.10 练习 309 6.11 本章小结 309 第7章 反射和接口 311 7.1 类型方法 311 7.2 Go接口 313 7.3 编写自己的接口 316 7.3.1 使用Go接口 316 7.3.2 使用switch语句和数据类型 318 7.4 反射 320 7.4.1 简单的反射示例 321 7.4.2 高级反射示例 323 7.4.3 反射的缺点 326 7.4.4 reflectwalk库 326 7.5 Go语言中的面向对象编程 329 7.6 Git和GitHub简介 332 7.6.1 使用Git 332 7.6.2 git status命令 333 7.6.3 git pull命令 333 7.6.4 git commit命令 333 7.6.5 git push命令 334 7.6.6 与分支协同工作 334 7.6.7 与文件协同工作 335 7.6.8 .gitignore文件 336 7.6.9 使用git diff命令 336 7.6.10 与标签协同工作 337 7.6.11 git cherry-pick命令 338
— 没有更多了 —
以下为对购买帮助不大的评价