(源自:https://golang.google.cn/doc/)

前言

Go编程语言是一个提高程序员工作效率的开源项目
Go富有表现力、简洁、简洁、高效。他让编写并发机制程序变得更加容易,能更好的适应多核CPU和联网设备,同时它新颖的类型体系能构建可伸缩和模块化的组件,Go 可以快速编译为机器代码,并且依然保留了便利的垃圾收集机制和运行期反射能力.总之,它是一种快速、静态类型的编译语言,但感觉又像是一种动态类型的解释语言,

开始

下载和安装Go说明

教程:入门
一个相当简短的HelloWorld入门教程,学习一点点关于Go代码,工具,包(package)以及模块(module)的知识

教程:创建模块
一个简短教程,介绍了关于 函数、错误处理、数组、映射、单元测试和编译

教程:使用Go和Gin开发RESTful API
介绍使用Go和gin web框架编写restful webAPI的基础知识

编写Web应用程序
构建一个简单的web应用程序

开发Module

开发和发布模块
您可以将相关package组织到module中,然后发布module供其他开发人员使用,本主题就讲述了如何开发和发布module

模块的发行和版本控制
当你正在开发供他人使用的module,你需要遵循一个工作流程以保证可靠性,一致性,,本主题就描述了使用工作流程的牛皮步骤

管理模块源码
您可以使用本章所描述的存储库约定, 以使你开发的module更便于给其他开发人员使用.

开发一个主版本更新器
对你的用户来说主版本更新是十分要命的,因为这可能引入新的module,并造成巨大破坏,在本章你能学到更多知识

发行一个module
当您创造了一个模板,并想让其他开发人员使用时,您可以发布该模块,使其在Go工具中可见。发布模块后,导入其包的开发人员将能够通过运行go-get等命令来产生对模块的依赖.

module版本号
module开发人员使用分部版本号机制来表示版本的稳定性和向后兼容性。对于每个新发行版,模块的版本号都会具体反映自上一版本以来模块更改

常见问题(FAQ)
回答一些关于Go的常见问题

 

参考

package文档
go标准库 文档

命令行文档
go工具 文档

语言特性
官宣的Go特性

Go module参考
Go依赖关系管理系统的详细参考手册

go.mod文件引用
go.mod文件中包含的指令的参考

go的内存模型
在特定条件下可以保证读取一个goroutine中的变量,以观察在不同goroutine中写入同一变量所产生的值。

发行版历史
Go发行版的所有摘要

漫步代码(Codewalks)

tours项目的目录:
1.First-Class 功能
2.使用马尔可夫链产生任意文本
3.使用Communicating共享内存

工具:
1.关于Go的命令行工具 ;我们为什么要写它,它是啥,它不是啥,它能干啥
2.使用GDB调试Go代码
3.数据竞争检测器-数据竞争检测器手册
4.Go汇编程序快速指南-Go使用的汇编程序简介

维基Wiki

Go Wiki 维护着关于Go语言、工具和相关资源的文章

看一看Learn页面可以找到更多go资源