展开全部

主编推荐语

全面掌握Go语言语法、编程及应用。

内容简介

Go语言也称为Golang,它出自计算机科学领域的三位巨匠Ken Thompson、Rob Pikeh和Robert Griesemer之手,在2009年由Google公司正式发布。

Go语言是一种静态强类型、编译型、并发型及具有垃圾回收功能的开源编程语言。它的主要目标是“兼具Python等动态语言的开发速度和C/C++等编译型语言的性能与安全性”。Go语言语法简单,规则严谨。

此外,Go语言拥有功能完善、质量可靠的标准库,借助这些标准库,可以快速开发基础程序,极大降低学习与开发成本。

Go语言拥有完整的工具链,编译、格式化、错误检查功能和帮助文档及第三方工具包都很完善,可以保证代码正确稳定的运行。正因为Go语言具有如此众多的特性,它被誉为“21世纪的编程语言”,成为一种国际化的新语言。

本书由知名IT开发者周家安编著,内容通俗易懂、理论全面、实例丰富。Go(Golang)语言在语法上与C、C++语言相似,是一门开源的编程语言,可用于编写简单的、实用的应用程序。Go语言支持内存管理和垃圾回收(GC)机制,使用Go协程可以轻松实现并发计算。

本书通过通俗易懂的文字,着重讲解Go语言编程的基础知识,同时配有丰富的示例。主要内容包括开发环境配置及语法基础,代码包(Package),内置运算符与数据类型,代码流程控制,函数式、接口与结构体,数组、切片与映射类型,反射技术,管理命令行参数,I/O、数据压缩及文件操作,加密与解密,网络编程,Go协程。

目录

  • 版权信息
  • 内容简介
  • 作者简介
  • 编辑推荐
  • 前言 FOREWORD
  • 第1章 准备工作
  • 1.1 安装Go语言编译器
  • 1.2 配置环境变量
  • 1.3 验证Go语言编译器的工作状态
  • 第2章 语法基础
  • 2.1 代码结构
  • 2.2 main包与main函数
  • 2.3 Go语句
  • 2.4 代码块
  • 2.5 注释
  • 2.6 使用Go语言编译器
  • 第3章 运算符
  • 3.1 操作数
  • 3.2 算术运算符
  • 3.2.1 四则运算符
  • 3.2.2 取余运算符
  • 3.2.3 如何实现指数运算
  • 3.2.4 自增与自减运算符
  • 3.3 比较运算符
  • 3.4 逻辑运算符
  • 3.5 位运算符
  • 3.5.1 按位与
  • 3.5.2 按位或
  • 3.5.3 取反
  • 3.5.4 位移
  • 3.5.5 按位异或
  • 3.5.6 清除标志位
  • 3.6 成员运算符
  • 3.7 取地址运算符
  • 3.8 复合运算符
  • 3.9 运算符的优先级
  • 第4章 程序包管理
  • 4.1 package语句
  • 4.2 程序包的目录结构
  • 4.3 导入语句
  • 4.4 初始化函数
  • 4.5 模块
  • 4.5.1 go.mod文件的基本结构
  • 4.5.2 创建go.mod文件
  • 4.5.3 编辑go.mod文件
  • 4.5.4 使用本地模块
  • 4.6 成员的可访问性
  • 第5章 变量与常量
  • 5.1 变量的初始化
  • 5.2 组合赋值
  • 5.3 匿名变量
  • 5.4 常量
  • 5.5 批量声明
  • 5.6 变量的作用域
  • 5.7 变量的默认值
  • 第6章 基础类型
  • 6.1 字符与字符串
  • 6.1.1 rune类型
  • 6.1.2 string类型
  • 6.2 数值类型
  • 6.2.1 示例:获取数值类型占用的内存大小
  • 6.2.2 整数常量的表示方式
  • 6.2.3 科学记数法
  • 6.2.4 复数
  • 6.3 日期与时间
  • 6.3.1 Month类型
  • 6.3.2 Weekday类型
  • 6.3.3 Duration类型
  • 6.3.4 Time类型
  • 6.3.5 Sleep函数
  • 6.3.6 Timer类型
  • 6.4 指针
  • 6.4.1 何时使用指针类型
  • 6.4.2 new函数
  • 6.5 iota常量
  • 第7章 函数
  • 7.1 函数的定义
  • 7.2 调用函数
  • 7.3 return语句
  • 7.4 多个返回值
  • 7.5 可变个数的参数
  • 7.6 匿名函数
  • 7.7 将函数作为参数传递
  • 第8章 流程控制
  • 8.1 顺序执行
  • 8.2 if语句
  • 8.3 switch语句
  • 8.3.1 基于表达式构建的switch语句
  • 8.3.2 基于类型构建的switch语句
  • 8.3.3 fallthrough语句
  • 8.4 for语句
  • 8.4.1 仅带条件子句的for语句
  • 8.4.2 带三个子句的for语句
  • 8.4.3 枚举集合元素语句
  • 8.4.4 continue与break语句
  • 8.5 代码跳转
  • 8.5.1 代码标签与goto语句
  • 8.5.2 break、continue语句与代码跳转
  • 第9章 接口与结构体
  • 9.1 自定义类型
  • 9.2 结构体
  • 9.2.1 结构体的定义
  • 9.2.2 结构体的实例化
  • 9.2.3 方法
  • 9.3 接口
  • 9.3.1 接口的定义
  • 9.3.2 接口的实现
  • 9.3.3 空接口——interface{}
  • 9.3.4 接口与函数
  • 9.4 类型嵌套
  • 9.5 类型断言
  • 第10章 数组与切片
  • 10.1 数组
  • 10.1.1 数组的初始化
  • 10.1.2 访问数组元素
  • 10.1.3 *[n]T与[n]*T的区别
  • 10.1.4 多维数组
  • 10.2 切片
  • 10.2.1 创建切片实例
  • 10.2.2 添加和删除元素
  • 第11章 映射与链表
  • 11.1 映射
  • 11.1.1 映射对象的初始化
  • 11.1.2 访问映射对象的元素
  • 11.1.3 检查key的存在性
  • 11.2 双向链表
  • 11.2.1 与双向链表有关的API
  • 11.2.2 创建链表实例
  • 11.2.3 添加和删除元素
  • 11.2.4 移动元素
  • 11.2.5 枚举链表元素
  • 11.3 环形链表
  • 11.3.1 与环形链表有关的API
  • 11.3.2 使用环形链表
  • 11.3.3 滚动环形链表
  • 11.3.4 链接两个环形链表
  • 第12章 反射
  • 12.1 关键API
  • 12.2 获取类型信息
  • 12.2.1 类型分辨
  • 12.2.2 枚举结构体类型的方法列表
  • 12.2.3 枚举结构体类型的字段列表
  • 12.2.4 查找嵌套结构体的字段成员
  • 12.2.5 获取函数的参数信息
  • 12.2.6 获取通道类型的信息
  • 12.2.7 判断类型是否实现了某个接口
  • 12.3 Value与对象的值
  • 12.3.1 修改对象的值
  • 12.3.2 读写结构体实例的字段
  • 12.3.3 更新数组/切片的元素
  • 12.3.4 调用函数
  • 12.3.5 调用方法
  • 12.3.6 读写映射类型的元素
  • 12.4 动态构建类型
  • 12.4.1 New函数
  • 12.4.2 创建数组类型
  • 12.4.3 创建结构体类型
  • 12.4.4 动态创建和调用函数
  • 12.4.5 生成通用函数体
  • 12.5 结构体的Tag
  • 第13章 字符串处理
  • 13.1 打印文本
  • 13.2 格式化输出
  • 13.2.1 格式化整数值
  • 13.2.2 格式化浮点数值
  • 13.2.3 格式化字符串
  • 13.2.4 格式化布尔类型的值
  • 13.2.5 %T与%v格式控制符
  • 13.2.6 输出包含前缀的整数值
  • 13.2.7 设置输出内容的宽度
  • 13.2.8 控制浮点数的精度
  • 13.2.9 参数索引
  • 13.2.10 通过参数来控制文本的宽度和精度
  • 13.3 读取输入文本
  • 13.3.1 读取键盘输入的内容
  • 13.3.2 从文件中读入文本
  • 13.3.3 以特定的格式读取文本
  • 13.4 实现Stringer接口
  • 13.5 连接字符串
  • 13.6 替换字符串
  • 13.7 拆分字符串
  • 13.8 查找子字符串
  • 13.8.1 查找前缀与后缀
  • 13.8.2 查找子字符串的位置
  • 13.9 修剪字符串
  • 13.9.1 去除前缀和后缀
  • 13.9.2 去除字符串首尾的空格
  • 13.9.3 修剪指定的字符
  • 13.10 重复字符串
  • 13.11 字符串与数值之间的转换
  • 13.12 切换大小写
  • 13.13 使用Builder构建字符串
  • 第14章 常用数学函数
  • 14.1 求绝对值
  • 14.2 最大值与最小值
  • 14.3 三角函数与反三角函数
  • 14.4 幂运算
  • 14.5 开平方/立方根
  • 14.6 大型数值
  • 14.6.1 大型整数值之间的运算
  • 14.6.2 阶乘运算
  • 14.6.3 使用大型浮点数值
  • 14.7 随机数
  • 14.7.1 生成随机浮点数
  • 14.7.2 生成随机整数
  • 14.7.3 设置随机数种子
  • 14.7.4 生成随机全排列
  • 14.7.5 “洗牌”程序
  • 14.7.6 生成随机字节序列
  • 第15章 排序
  • 15.1 基本排序函数
  • 15.2 实现递减排序
  • 15.3 按字符串的长度排序
  • 15.4 Interface接口
  • 第16章 输入与输出
  • 16.1 简单的内存缓冲区
  • 16.2 与输入/输出有关的接口类型
  • 16.2.1 实现读写功能
  • 16.2.2 嵌套封装
  • 16.3 Buffer类型
  • 16.4 Copy函数
  • 16.5 MultiReader函数和MultiWriter函数
  • 16.6 SectionReader
  • 第17章 文件与目录
  • 17.1 文件操作
  • 17.1.1 Create函数与Open函数
  • 17.1.2 重命名文件
  • 17.1.3 获取文件信息
  • 17.1.4 OpenFile函数
  • 17.2 创建和删除目录
  • 17.3 硬链接与符号链接
  • 17.3.1 硬链接
  • 17.3.2 符号链接
  • 17.4 WriteFile函数与ReadFile函数
  • 17.5 临时文件
  • 17.6 更改程序的工作目录
  • 第18章 加密与解密
  • 18.1 Base64的编码与解码
  • 18.1.1 内置Base64编码方案
  • 18.1.2 基于流的编码与解码
  • 18.1.3 自定义字符映射表
  • 18.2 DES与AES算法
  • 18.2.1 Block接口
  • 18.2.2 BlockMode模式
  • 18.2.3 基于流的加密与解密
  • 18.3 哈希算法
  • 18.3.1 hash.Hash接口
  • 18.3.2 使用crypto子包中的哈希API
  • 18.3.3 HMAC算法
  • 18.4 RSA算法
  • 18.4.1 生成密钥
  • 18.4.2 加密和解密
  • 18.4.3 存储密钥
  • 18.5 PEM编码
  • 18.5.1 编码与解码
  • 18.5.2 解码后的保留数据
  • 18.5.3 消息头
  • 第19章 命令行参数
  • 19.1 os.Args变量
  • 19.2 命令行参数分析API——flag包
  • 19.2.1 命令行参数与变量的绑定
  • 19.2.2 Value接口
  • 第20章 数据压缩
  • 20.1 标准库对压缩算法的支持
  • 20.2 Gzip压缩算法
  • 20.2.1 Gzip基本用法
  • 20.2.2 压缩多个文件
  • 20.2.3 解压多个文件
  • 20.3 DEFLATE算法
  • 20.4 自定义的索引字典
  • 20.5 Zip文档
  • 20.5.1 从Zip文档中读取文件
  • 20.5.2 在内存中读写Zip文档
  • 20.5.3 注册压缩算法
  • 20.6 Tar文档
  • 第21章 协程
  • 21.1 启动Go协程
  • 21.2 通道
  • 21.2.1 实例化通道
  • 21.2.2 数据缓冲
  • 21.2.3 单向通道
  • 21.2.4 通道与select语句
  • 21.3 互斥锁
  • 21.4 WaitGroup类型
  • 第22章 网络编程
  • 22.1 枚举本地计算机上的网络接口
  • 22.2 Socket通信
  • 22.2.1 TCP示例:文件传输
  • 22.2.2 UDP示例:文本传输
  • 22.3 HTTP客户端
  • 22.3.1 发送GET与POST请求
  • 22.3.2 发送自定义HTTP头
  • 22.4 HTTP服务器
  • 22.4.1 创建HTTP服务器
  • 22.4.2 实现Handler接口
  • 22.4.3 ServeMux类型
  • 22.4.4 封装函数
  • 22.4.5 读取URL参数
  • 22.4.6 获取客户端提交的表单数据
  • 22.4.7 读取客户端上传的文件
  • 22.5 CGI编程
  • 22.5.1 准备工作
  • 22.5.2 示例:一个简单的CGI程序
  • 22.5.3 使用cgi包
  • 22.5.4 在子进程中获取Request对象
  • 附录A 常用API与程序包对照表
  • 附录B Go语言代码编辑工具使用说明
展开全部

评分及书评

评分不足
2个评分

出版方

清华大学出版社

清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。