Web Analytics

“Go 2,请不要发生!”:如果 Go 变成了“缝合怪”,你还会爱它吗?

本文永久链接 – https://tonybai.com/2026/02/06/go-2-dont-become-a-frankenstein-monster 大家好,我是Tony Bai。 “Go 2, please don’t make it happen.” 近日,一张充满讽刺意味的老梗图在 r/golang 社区又炸开了锅。图片的上方,是我们熟悉的 Gopher 吉祥物——那只呆萌、简单、甚至有点傻气的蓝色地鼠,它象征着 Go 语言纯粹而克制的灵魂。 ...

February 6, 2026 · 9 min · Tony Bai

2025 Go 官方调查解读:91% 满意度背后的隐忧与 AI 时代的“双刃剑”

本文永久链接 – https://tonybai.com/2026/01/23/go-developer-2025-survey-result 大家好,我是Tony Bai。 近日,Go 官方发布了 2025 年开发者调查报告。作为 Go 社区的年度“体检报告”,这份基于 5,379 份有效问卷的数据,为我们勾勒出了一幅清晰的 Go 生态全景图。 ...

January 23, 2026 · 6 min · Tony Bai

告别 interface{} 模拟,Go 终于要有真正的 Union 类型了?

本文永久链接 – https://tonybai.com/2025/12/29/go-community-new-sum-type-end-interface-union-types 大家好,我是Tony Bai。 “Go 什么时候支持枚举?” “Go 什么时候有真正的联合类型?” 这可能是 Go 语言诞生以来,被问得最多的问题之一。现有的解决方案——无论是用 const 模拟枚举,还是用 interface{} 配合类型断言模拟联合类型——在类型安全、表达力和穷尽性检查上,都总让人感觉“差了那么一点意思”。 ...

December 29, 2025 · 6 min · Tony Bai

Go 的 iota:设计缺陷还是“黑魔法”?—— 从一条“咆哮”推文谈起

本文永久链接 – https://tonybai.com/2025/10/25/go-iota-flaw-or-magic 大家好,我是Tony Bai。 “我一直在 DUNK Go,因为我觉得它是一门糟糕的语言。但我从未意识到,它比无底的绝望深渊还要深。这TMD是啥?” 近日,一条关于 Go 语言 iota 的“咆哮”推文在开发者社区引发了热议。推文作者 Dmitrii Kovanikov 贴出了一张看似极其复杂、反直觉的 iota 计算示例(如下图),并将其作为 Go 语言设计糟糕的“罪证”。 ...

October 25, 2025 · 5 min · Tony Bai

“我们放弃了”——Go 团队坦诚布公,聊聊那些可能永远不会加入 Go 的功能

本文永久链接 – https://tonybai.com/2025/09/22/go-team-gave-up-on-features 大家好,我是Tony Bai。 在 GopherCon Europe 2025 的 Go 团队座谈会上,Michael Stapelberg(负责go protobuf)、Damien Neil(负责Go安全相关)、Michael Pratt(负责Go运行时和Go性能相关) 和 Jonathan Amsterdam(log/slog作者,负责Go工具相关) 四位核心成员与社区进行了一场坦诚的对话。他们不仅分享了诸如官方 MCP SDK、“裸金属”Go 等激动人心的进展,更以一种罕见的坦率,正面回应了社区长期以来关心的多个“老大难”问题——包括不可变类型、泛型错误处理和非 nil 指针。其中最引人注目的一句“我们放弃了”,几乎为 Go 语言在某些方向上的演进画上了句号。 ...

September 22, 2025 · 10 min · Tony Bai

“错误即值”,不同实现:Go与Zig错误处理哲学对比

本文永久链接 – https://tonybai.com/2025/04/30/go-vs-zig-in-error-handling 大家好,我是Tony Bai。 使用Go语言有些年头的开发者,大多对其错误处理机制有着复杂的情感。一方面,我们认同 Rob Pike 所倡导的“错误即值 (Errors are values)”的核心哲学——错误不是需要特殊通道(如异常)处理的“二等公民”,它们是普通的值,可以传递、检查,甚至被编程。这赋予了错误处理极大的灵活性和明确性。 ...

April 30, 2025 · 8 min · Tony Bai

Go的简洁神话?转Go前你需要知道的5个“真相”

Go的简洁神话?转Go前你需要知道的5个“真相” - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

April 29, 2025 · 5 min · Tony Bai

Go类型系统:有何与众不同

本文永久链接 – https://tonybai.com/2022/12/18/go-type-system Go是一门强类型的静态编程语言。使用Go编程,我们的每一行代码几乎都离不开类型。因此,深入学习Go,我们首先要对Go的类型系统(type system)有一个全面和深入的认知。Go类型系统可以给予我们一个全局整体的视角,以帮助我们更好地学习和理解Go语言中那些具体的与类型相关的内容。 ...

December 18, 2022 · 8 min · Tony Bai

使用反射操作channel

本文永久链接 – https://tonybai.com/2022/11/15/using-reflect-to-manipulate-channels 今年教师节极客时间送给讲师4999 SVIP卡,一直没顾过来用,上周激活后在极客时间的众多精品课和专栏中徜徉,收获颇丰。尤其是在拜读鸟窝老师的《Go并发编程实战课》 后,get到一个以前从未用过的“技能点”:使用reflect操作channel,这里整理一下,把它分享给大家。 ...

November 15, 2022 · 11 min · Tony Bai

Go语言的“黑暗角落”:盘点学习Go语言时遇到的那些陷阱[译](第二部分)

本文翻译自Rytis Bieliunas的文章《Darker Corners of Go》。 第一部分参见《Go语言的“黑暗角落”:盘点学习Go语言时遇到的那些陷阱[译](第一部分)》 7. 字符串和字节数组 1) Go中的字符串 Go字符串的内部定义如下所示: type StringHeader struct { Data uintptr Len int } 字符串本身是一个值类型,它具有一个指向字节数组的指针和固定长度。字符串中的“零字节”不像在C中那样标记着字符串的结尾。字符串内可以有任何数据。通常,该数据被编码为UTF-8字符串,但不一定如此。 ...

March 29, 2021 · 29 min · Tony Bai