Go程序设计语言 / 计算机科学丛书
¥79.00定价
作者: [美]艾伦 A.A.多诺万,布莱恩 W.柯尼汉著;李道兵,高博,庞向才等译
出版时间:2017-04
出版社:机械工业出版社
- 机械工业出版社
- 9787111558422
- 1版
- 283923
- 47229837-1
- 平装
- 16开
- 2017-04
- 420
- 300
- 工学
- 软件工程
- TP312.8
- 计算机通信类
- 本科
作者简介
内容简介
本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队主管AlanDonovan联袂撰写,是学习Go语言程序设计指南。本书共13章,主要内容包括:Go的基础知识、基本结构、基本数据类型、复合数据类型、函数、方法、接口、goroutine、通道、共享变量的并发性、包、go工具、测试、反射等。本书适合作为计算机相关专业的教材,也可供Go语言爱好者阅读。
目录
目 录The Go Programming Language出版者的话译者序前言第1章 入门 11.1 hello,world 11.2 命令行参数 31.3 找出重复行 61.4 GIF动画 101.5 获取一个URL 121.6 并发获取多个URL 131.7 一个Web服务器 141.8 其他内容 17第2章 程序结构 202.1 名称 202.2 声明 212.3 变量 222.3.1 短变量声明 222.3.2 指针 232.3.3 new函数 252.3.4 变量的生命周期 262.4 赋值 272.4.1 多重赋值 272.4.2 可赋值性 282.5 类型声明 292.6 包和文件 302.6.1 导入 312.6.2 包初始化 332.7 作用域 34第3章 基本数据 383.1 整数 383.2 浮点数 423.3 复数 453.4 布尔值 473.5 字符串 473.5.1 字符串字面量 493.5.2 Unicode 493.5.3 UTF-8 503.5.4 字符串和字节slice 533.5.5 字符串和数字的相互转换 563.6 常量 563.6.1 常量生成器iota 573.6.2 无类型常量 59第4章 复合数据类型 614.1 数组 614.2 slice 634.2.1 append函数 664.2.2 slice就地修改 694.3 map 714.4 结构体 764.4.1 结构体字面量 784.4.2 结构体比较 804.4.3 结构体嵌套和匿名成员 804.5 JSON 824.6 文本和HTML模板 87第5章 函数 925.1 函数声明 925.2 递归 935.3 多返回值 965.4 错误 985.4.1 错误处理策略 995.4.2 文件结束标识 1015.5 函数变量 1025.6 匿名函数 1045.7 变长函数 1105.8 延迟函数调用 1115.9 宕机 1155.10 恢复 118第6章 方法 1206.1 方法声明 1206.2 指针接收者的方法 1226.3 通过结构体内嵌组成类型 1246.4 方法变量与表达式 1276.5 示例:位向量 1286.6 封装 130第7章 接口 1337.1 接口即约定 1337.2 接口类型 1357.3 实现接口 1367.4 使用lue来解析参数 1397.5 接口值 1417.6 使用erface来排序 1447.7 ndler接口 1487.8 error接口 1527.9 示例:表达式求值器 1547.10 类型断言 1607.11 使用类型断言来识别错误 1617.12 通过接口类型断言来查询特性 1627.13 类型分支 1647.14 示例:基于标记的XML解析 1667.15 一些建议 168第8章 goroutine和通道 1708.1 goroutine 1708.2 示例:并发时钟服务器 1718.3 示例:并发回声服务器 1748.4 通道 1768.4.1 无缓冲通道 1778.4.2 管道 1788.4.3 单向通道类型 1808.4.4 缓冲通道 1818.5 并行循环 1838.6 示例:并发的Web爬虫 1878.7 使用select多路复用 1908.8 示例:并发目录遍历 1928.9 取消 1958.10 示例:聊天服务器 198第9章 使用共享变量实现并发 2019.1 竞态 2019.2 互斥锁:tex 2059.3 读写互斥锁:Mutex 2089.4 内存同步 2089.5 延迟初始化:ce 2109.6 竞态检测器 2129.7 示例:并发非阻塞缓存 2129.8 goroutine与线程 2189.8.1 可增长的栈 2199.8.2 goroutine调度 2199.8.3 GOMAXPROCS 2199.8.4 goroutine没有标识 220第10章 包和go工具 22110.1 引言 22110.2 导入路径 22110.3 包的声明 22210.4 导入声明 22310.5 空导入 22310.6 包及其命名 22510.7 go工具 22610.7.1 工作空间的组织 22710.7.2 包的下载 22810.7.3 包的构建 22910.7.4 包的文档化 23110.7.5 内部包 23210.7.6 包的查询 233第11章 测试 23511.1 go test工具 23511.2 Test函数 23611.2.1 随机测试 23911.2.2 测试命令 24011.2.3 白盒测试 24211.2.4 外部测试包 24511.2.5 编写有效测试 24611.2.6 避免脆弱的测试 24711.3 覆盖率 24811.4 Benchmark函数 25011.5 性能剖析 25211.6 Example函数 254第12章 反射 25612.1 为什么使用反射 25612.2 pe和lue 25712.3 Display:一个递归的值显示器 25912.4 示例:编码S表达式 26312.5 使用lue来设置值 26612.6 示例:解码S表达式 26812.7 访问结构体字段标签 27112.8 显示类型的方法 27312.9 注意事项 274第13章 低级编程 27613.1 zeof、Alignof 和Offsetof 27613.2 inter 27813.3 示例:深度相等 28013.4 使用cgo调用C代码 28213.5 关于安全的注意事项 286