Go语言编程

Go语言编程

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

《Go语言编程》适合所有层次的开发者阅读。

内容简介

这本书从整体的写作风格来说,会以介绍 Go 语言特性为主,示例则尽量采用作者平常的实践,而不是一个没有太大实际意义的语法示范样例。

本书作者背景极强,许式伟为原金山WPS首席架构师、曾是盛大创新院研究员,目前是国内Go语言实践圈子公认的Go语言专家。参与本书写作的几位作者都是实际用Go语言开发的项目的开发人员,有较强的实战经验。

本书以介绍Go语言特性为主,示例则尽量采用作者开发团队平常的实践,内容涉及内存管理(堆和栈)、错误处理、OOP、并发编程等关键话题。 这本书面向的读者是所有打算用Go语言的开发者,主要包括目前使用C、C++、Java、C#的开发人员,甚至一些Python、PHP开发人员也可能转为 Go 程序员。

作者简介

许式伟

七牛云存储CEO,曾任盛大创新院资深研究员、金山软件技术总监、WPS Office 2005首席架构师。开源爱好者,发布过包括WINX、TPL等十余个C++开源项目,拥有超过15年的C/C++开发经验。在接触Go语言后即可被其大道至简、少即是多的设计哲学所倾倒。七牛云存储是国内第一个吃螃蟹的团队,核心服务完全采用Go语言实现。

吕桂华

七牛云存储联合创始人,曾在金山软件、盛大游戏等公司担任架构师和部门经理等职务,在企业级系统和大型网游平台领域有较多涉猎。拥有十余年的C/C++大型项目开发经验,也曾在Java和.NET平台上探索多年。同样被Go语言的魅力所吸引而不可自拔,希望能为推广这门优秀的语言尽自己的绵薄之力。

章节目录

版权信息

前言:为什么我们需要一门新语言

并发与分布式

软件工程

编程哲学

小结

第1章 初识Go语言

1.1 语言简史

1.2 语言特性

1.2.1 自动垃圾回收

1.2.2 更丰富的内置类型

1.2.3 函数多返回值

1.2.4 错误处理

1.2.5 匿名函数和闭包

1.2.6 类型和接口

1.2.7 并发编程

1.2.8 反射

1.2.9 语言交互性

1.3 第一个Go程序

1.3.1 代码解读

1.3.2 编译环境准备

1.3.3 编译程序

1.4 开发工具选择

1.5 工程管理

1.6 问题追踪和调试

1.6.1 打印日志

1.6.2 GDB调试

1.7 如何寻求帮助

1.7.1 邮件列表

1.7.2 网站资源

1.8 小结

第2章 顺序编程

2.1 变量

2.1.1 变量声明

2.1.2 变量初始化

2.1.3 变量赋值

2.1.4 匿名变量

2.2 常量

2.2.1 字面常量

2.2.2 常量定义

2.2.3 预定义常量

2.2.4 枚举

2.3 类型

2.3.1 布尔类型

2.3.2 整型

2.3.3 浮点型

2.3.4 复数类型

2.3.5 字符串

2.3.6 字符类型

2.3.7 数组

2.3.8 数组切片

2.3.9 map

2.4 流程控制

2.4.1 条件语句

2.4.2 选择语句

2.4.3 循环语句

2.4.4 跳转语句

2.5 函数

2.5.1 函数定义

2.5.2 函数调用

2.5.3 不定参数

2.5.4 多返回值

2.5.5 匿名函数与闭包

2.6 错误处理

2.6.1 error接口

2.6.2 defer

2.6.3 panic()和recover()

2.7 完整示例

2.7.1 程序结构

2.7.2 主程序

2.7.3 算法实现

2.7.4 主程序

2.7.5 构建与执行

2.8 小结

第3章 面向对象编程

3.1 类型系统

3.1.1 为类型添加方法

3.1.2 值语义和引用语义

3.1.3 结构体

3.2 初始化

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.5.7 Any类型

3.6 完整示例

3.6.1 音乐库

3.6.2 音乐播放

3.6.3 主程序

3.6.4 构建运行

3.6.5 遗留问题

3.7 小结

第4章 并发编程

4.1 并发基础

4.2 协程

4.3 goroutine

4.4 并发通信

4.5 channel

4.5.1 基本语法

4.5.2 select

4.5.3 缓冲机制

4.5.4 超时机制

4.5.5 channel的传递

4.5.6 单向channel

4.5.7 关闭channel

4.6 多核并行化

4.7 出让时间片

4.8 同步

4.8.1 同步锁

4.8.2 全局唯一性操作

4.9 完整示例

4.9.1 简单IPC框架

4.9.2 中央服务器

4.9.3 主程序

4.9.4 运行程序

4.10 小结

第5章 网络编程

5.1 Socket编程

5.1.1 Dial()函数

5.1.2 ICMP示例程序

5.1.3 TCP示例程序

5.1.4 更丰富的网络通信

5.2 HTTP编程

5.2.1 HTTP客户端

5.2.2 HTTP服务端

5.3 RPC编程

5.3.1 Go语言中的RPC支持与处理

5.3.2 Gob简介

5.3.3 设计优雅的RPC接口

5.4 JSON处理

5.4.1 编码为JSON格式

5.4.2 解码JSON数据

5.4.3 解码未知结构的JSON数据

5.4.4 JSON的流式读写

5.5 网站开发

5.5.1 最简单的网站程序

5.5.2 net/http包简介

5.5.3 开发一个简单的相册网站

5.6 小结

第6章 安全编程

6.1 数据加密

6.2 数字签名

6.3 数字证书

6.4 PKI体系

6.5 Go语言的哈希函数

6.6 加密通信

6.6.1 加密通信流程

6.6.2 支持HTTPS的Web服务器

6.6.3 支持HTTPS的文件服务器

6.6.4 基于SSL/TLS的ECHO程序

6.7 小结

第7章 工程管理

7.1 Go命令行工具

基本用法

7.2 代码风格

7.2.1 强制性编码规范

7.2.2 非强制性编码风格建议

7.3 远程import支持

7.4 工程组织

7.4.1 GOPATH

7.4.2 目录结构

7.5 文档管理

7.6 工程构建

7.7 跨平台开发

7.7.1 交叉编译

7.7.2 Android支持

7.8 单元测试

7.9 打包分发

7.10 小结

第8章 开发工具

8.1 选择开发工具

8.2 gedit

8.2.1 语法高亮

8.2.2 编译环境

8.3 Vim

8.4 Eclipse

8.5 Notepad++

8.5.1 语法高亮

8.5.2 编译环境

8.6 LiteIDE

8.7 小结

第9章 进阶话题

9.1 反射

9.1.1 基本概念

9.1.2 基本用法

9.1.3 对结构的反射操作

9.2 语言交互性

9.2.1 类型映射

9.2.2 字符串映射

9.2.3 C程序

9.2.4 函数调用

9.2.5 编译Cgo

9.3 链接符号

9.4 goroutine机理

9.4.1 协程

9.4.2 协程的C语言实现

9.4.3 协程库概述

9.4.4 任务

9.4.5 任务调度

9.4.6 上下文切换

9.4.7 通信机制

9.5 接口机理

9.5.1 类型赋值给接口

9.5.2 接口查询

9.5.3 接口赋值

附录A

A.1 Go语言标准库

A.1.1 常用包介绍

A.1.2 完整包列表(1)

A.1.2 完整包列表(2)

A.1.2 完整包列表(3)

Go语言编程是2012年由人民邮电出版社出版,作者许式伟。

得书感谢您对《Go语言编程》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
第一行代码  C语言(视频讲解版) 电子书
学习程序设计,初学者往往遇到这样的困境:语言规则可以倒背如流,但写出的代码总是编译通不过,即使编译通过了却也得不出想要的结果。怎么办?《行代码 C语言》可以给你提供帮助。 你不需要具备高深的数学和电子学知识,只需要训练自己以计算机能够理解的方式去表达自己的逻辑,也就是要具备“计算思维”,寻找到解决问题的方法,然后用编程语言去指挥计算机执行即可。因此,本书与常规的C语言书不同,除了C语言本身的语法规则外,本书更关注的是培养初学者具有程序设计的思想,掌握程序设计的方法。 另外,计蒜客在线教育团队,为本书的读者提供了伴随式的在线编程平台支持,读者可以将图书和线上编程结合起来学习。 提供扫码看视频服务,全书94个微视频,总时长超过1000分钟。 提供辅助教学资源包,包括实验、试卷及答案、教学大纲、PPT等。
GO语言开发实战:慕课版 电子书
为对GO语言感兴趣的初学者和爱好者量身定做,从入门到精通,扫码直接看学习视频,并免费提供一站式教学服务包。
现代C++语言核心特性解析 电子书
通过理论结合实践的内容编排,深入探讨C11到C20引入的语言核心特性。
C语言程序设计:现代方法(第2版·修订版) 电子书
C语言入门零基础自学教程新升级,增加C1X相关内容,讲述C的所有特性,国外诸多名校的C语言课程教材,C开发人员的参考书。
编程竞赛宝典:C++语言和算法入门 电子书
信息学奥赛金牌教练精心之作,算法竞赛宝典。