Go 语言 101
《Go 语言 101》是一本着墨于 Go 语法语义以及运行时相关知识点的编程指导书(Go 1.17-pre 就绪)。 此书旨在尽可能地帮助 Go 程序员更深更全面地理解 Go 语言。 此书也搜集了 Go 语言和 Go 编程中的很多细节。 此书同时适合 Go 初学者和有一定经验的 Go 程序员阅读。
- English version is here.
- 本书微信公众号名称为 “Go 101”。此公众号将时不时地发表一些 Go 语言相关的原创短文。各位如果感兴趣,可以搜索关注一下。
- 此项目源代码目前托管在Github上。
- 你可以启动一个本地服务器来阅读本书以获取更快的阅读体验:
- 方法一:将本书项目克隆到本地,然后在项目目录中运行
go run .
。 - 方法二(只适用于官方工具链 1.16 + 版本):运行
go install go101.org/golang101@latest
来安装和更新golang101
可执行程序,然后在任意目录中运行golang101
。
- 方法一:将本书项目克隆到本地,然后在项目目录中运行
(本书由老貘历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本书和 Go101.org 网站不断增容和维护的动力。)
2021/04/11: 内存布局一文中(*Counter).xAddr
方法的实现是有问题的。 这个错误目前已经被修复了。
目录:
- 关于 Go 语言 101 - 为什么写这本书
- 致谢
- Go 语言简介 - 为什么 Go 语言值得学习
- Go 官方工具链 - 如何编译和运行 Go 程序
- Go 编程入门
- 程序源代码基本元素介绍
- 关键字和标识符
- 基本类型和它们的字面量表示
- 常量和变量 - 顺便介绍了类型不确定值和类型推断
- 运算操作符 - 顺便介绍了更多的类型推断规则
- 函数声明和调用
- 代码包和包引入
- 表达式、语句和简单语句
- 基本流程控制语法
- 协程、延迟函数调用、以及恐慌和恢复
- Go 类型系统
- 一些专题
- 并发编程
- 并发同步概述
- 通道用例大全
- 如何优雅地关闭通道
- 其它并发同步技术 - 如何使用
sync
标准库包 - 原子操作 - 如何使用
sync/atomic
标准库包 - Go 中的内存顺序保证
- 一些常见并发编程错误
- 内存相关
- 一些总结
- 更多关于 Go 的知识
本 Go101.org 网站将推出一些其它 Go 学习和使用栏目(比如 Go 实战,Go 测验,Go 工具等),敬请收藏关注期待。
本书微信公众号名称为“Go 101”。此公众号将时不时地发表一些 Go 语言相关的原创短文。各位如果感兴趣,可以搜索关注一下。
本书的 twitter 帐号为@Golang_101。玩推的 Go 友可以适当关注。
《Go 语言 101》项目目前托管在Github上。欢迎各位在此项目中通过提交 bug 和 PR 的方式来改进完善 Go 语言 101 中的各篇文章。
你或许对本书作者老貘开发的一些 App感兴趣。