Go Wiki:主页
欢迎来到 Go wiki,这里是关于 Go 编程语言的信息集合。 Awesome Go 是 Go 社区精心策划的另一个 Go 程序员的绝佳资源。
如果在此页面上找不到所需内容,请参阅所有页面列表。
关于 Go 的问题
请参阅 常见问题。
Contributing
- 如果您想添加新页面,请首先在 Go 问题跟踪器中以
wiki:
为前缀提交一个问题,以提议添加。请清楚说明内容为何不适合任何现有页面。 - 由于重命名 wiki 页面可能会破坏外部链接,因此在重命名或删除任何 wiki 页面之前,请先提交问题。
有关贡献的更多信息,请参阅 贡献。
目录
- Go 入门
- 使用 Go
- 了解更多关于 Go 的信息
- Go 社区
- 使用 Go 工具链
- 其他 Go 编程维基
- 与 Go 协作的在线服务
- 生产环境中的 Go 程序故障排除
- 为 Go 项目做贡献
- 平台特定信息
- 版本特定信息
- 问题
Go 入门
- Go 之旅是最好的入门之地。
- Effective Go 将帮助您学习如何编写地道的 Go 代码。
- Go 标准库文档,让您熟悉标准库。
- 使用 Go Playground 在浏览器中测试 Go 程序。
- 还没被说服?查看这份 Go 用户列表和他们的一些成功案例。我们还整理了一长串你应该尝试 Go 的理由。
- 了解那些从其他语言转向 Go 的公司。
使用 Go
准备好编写自己的 Go 代码了吗?这里有一些链接可以帮助您入门。
- 安装和设置您的环境
- 从这里开始:官方安装文档
- 如果您更喜欢从源代码安装,请先阅读此内容。
- InstallFromSource - 关于源代码安装的额外提示。
- Windows 用户?在 Windows 上安装和配置 Go、Git 和 Visual Studio Code
- Mac 用户?我的入门方式 - Go - 安装 Go 和构建您的第一个 Web 服务的逐步指南。
- 遇到安装问题?InstallTroubleshooting
- 确保您的 $GOPATH 环境变量设置正确
- 如果您需要使用 $GOPATH 的额外提示,请点击这里。
- Go IDE 和编辑器 - 关于如何使用您喜欢的编辑器与 Go 的信息。
- Go 代码工具 - 格式化、代码检查、审查、重构、导航和可视化。
- 查找 Go 库和包
- 从这里开始:Go 开源项目。
- 搜索 Go 包:pkg.go.dev
- Go 开源包图的可视化
- 模块 - 关于 Go 命令中内置的依赖管理系统(在 1.11 中添加)的文档。
- 将 Go 包作为开源发布
了解更多关于 Go 的信息
对语言有了大致了解后,这里有一些资源可以帮助您了解更多。
- 学习 Go - Go 学习资源合集 - 从初级到高级。
- Go 新开发者的最佳实践 - 来自 Go 社区成员的见解。
- 服务器编程 - 构建 Web、移动和 API 服务器。
- 更多关于并发
- 更多关于错误处理
- 更多关于测试
- 更多关于移动开发 - Android 和 iOS
- 书籍 - 已出版的 Go 书籍列表(电子书、纸质书)。
- 博客 - 关于 Go 的博客。
- 播客 - 包含 Go 的播客和节目。
- 视频、演讲和演示文稿
- 文章 - 帮助您了解更多 Go 的文章集。
- 培训 - 免费和商业,在线和课堂 Go 培训。
- 大学课程 - 使用 Go 的计算机科学课程和课堂列表。
- 非英语用户资源
Go 社区
以下是您可以在线找到 Gophers 的一些地方。要了解成为 Go 社区成员的意义,请阅读 Damian Gryski 在 GolangUK 2015 大会上的主题演讲 或观看 Andrew Gerrand 在 GopherCon 2015 上的闭幕主题演讲。
- Gophers 在线聚集地
- Go 论坛 - Go 社区的多功能讨论论坛。
- Gophers Slack 频道 - 用于实时聊天(请求会员资格)。
- Golang News - 提供关于 Go 编程的精选链接。
- 还有一个 /r/golang 子版块。
- 在 Mastodon 上,关注 @golang 帐户并关注 #golang 话题标签。
- 在 Twitter 上,关注 @golang 帐户并关注 #golang 话题标签。
- 我们还在 Stack Overflow 上有一个 Go 问答的着陆页。
- Matrix 爱好者受邀加入 #Go:matrix.org。
- Discord 用户欢迎加入 Discord Gophers 服务器。
- Hashnode 用户在 Hashnode Go 社区中讨论和撰写关于 Go 的内容。
- 邮件列表
- Go 用户的邮件列表是 golang-nuts - 流量非常高。
- 在您发帖之前,请检查是否已经有人回答过,然后阅读 这些关于如何提出好问题的提示
- 有关核心 Go 开源项目的讨论,请加入 golang-dev。
- 如需仅获取我们的发布公告,请加入 golang-announce
- Go 用户的邮件列表是 golang-nuts - 流量非常高。
- 用户组和聚会 - 许多城市都有 Go 聚会
- GoBridge - 志愿者帮助弱势社区教授技术技能并在 Go 中促进多样性。
- 女性 Go 爱好者
- 更多信息请参见 GoUserGroups
- GoDiscourse - Go Discourse 是一个开源的基于 Go 的论坛,源自
hello world
。
- 会议 - 即将举行和已结束的 Go 会议和重大活动列表。
- 使用 Go 的公司 - 全球使用 Go 的公司综合列表。
- 了解更多关于 Renee French 的 Go 地鼠图像。
使用 Go 工具链
- 从
go
命令的标准文档开始,此处可用 - 从这里开始学习 供应商化。
- 交叉编译
- 共享库和 Go (buildmode)
- Go 共享库 - 从 Go 和 Python 创建和使用共享库的示例。
- 与 C 共享 Go 包 - 作者:Svetlin Ralchev
- 从 Python 调用 Go 库 - 作者:Filippo Valsorda
- 从 Ruby 调用 Go 库 - 作者:Peter Hellberg
- 从 Swift 调用 Go 库 - 作者:Jaana Burcu Dogan
- gohttplib - 使用 Go 1.5 buildmode=c-shared 的实验。
- 有关其他详细信息,请参阅以下维基
- GoGetTools
- GoGetProxyConfig
- cgo
- 编译器优化
- Gccgo交叉编译
- GcToolchainTricks
- GoGenerateTools
- Go 工具基础 - 作者:Jaana Burcu Dogan
其他 Go 编程维基
-
人工智能
- AI - 从 Go 访问 AI(人工智能)和 LLM(大型语言模型)服务
-
并发
- 超时 - 放弃耗时过长的异步调用
- LockOSThread
- MutexOrChannel - 何时使用互斥锁或通道
- 竞态检测器 - 如何检测和修复竞态条件
-
使用数据库
- database/sql - 使用 database/sql 包的在线教程。
- SQLDrivers
- SQLInterface
-
来自其他语言
-
字符串
与 Go 协作的在线服务
如果您正在寻找支持 Go 的服务,这里有一个列表可以帮助您入门。
- 云计算 - Go 受到大多数云服务提供商的良好支持。
- 持续集成和持续部署 - Go 受到大多数 CI/CD 框架的良好支持
- 监控/日志
- OpsDash - 基于 Go 的集群监控平台。
- 包和依赖管理
- Gopkg.in 是 Gustavo Niemeyer 提供的稳定 Go 库的来源。
生产环境中的 Go 程序故障排除
- 使用 pprof 包了解您的 Go 应用程序的性能
- 堆转储
为 Go 项目做贡献
- 首先阅读 Go 贡献指南
- 如果您想对 Go 项目提出更改,请首先阅读 Go 更改提案流程
- Go 版本大约每 6 个月发布一次。 有关更多信息,请参阅此处
- 想了解更多关于 Go 源代码 X 存储库如何构建?
- Go 项目要求所有代码在提交前都经过审查。
- 问题
- 错误报告和功能请求应使用 GitHub 问题跟踪器提交
- 想了解我们如何处理已报告的问题?
- 项目仪表板
平台特定信息
请参阅 MinimumRequirements 以了解当前 Go 移植的最低平台要求。正在考虑将 Go 移植到新平台?请先阅读我们的移植政策。
注意事项
- 请勿更改维基页面的标题,因为其中一些页面可能已链接到 golang.org 或其他网站
此内容是 Go Wiki 的一部分。