Dave Cheney 复出首谈:那些我反复强调的Go编程模式

本文永久链接 – https://tonybai.com/2025/09/17/some-things-i-keep-repeating-about-go 大家好,我是Tony Bai。 在阔别公众视野数年后,Go 社区的传奇人物 Dave Cheney 终于重返 GopherCon Europe 的舞台,发表了一场备受瞩目的复出首谈(注:我印象中的回归首谈^_^)。这场题为《那些我反复强调的 Go 编程之事》的演讲,没有追逐时髦的技术热点,而是选择回归编程的本源,分享了他十五年 Go 编程生涯中,那些被反复实践、验证并沉淀下来的核心理念。 ...

September 17, 2025 · 9 min · Tony Bai

Go导出标识符:那些鲜为人知的细节

本文永久链接 – https://tonybai.com/2025/01/23/the-hidden-details-of-go-exported-identifiers 前不久,在“Go+用户组”微信群里看到有开发者向七牛云老板许式伟反馈七牛云Go SDK中的某些类型没有导出,导致外部包无法使用的问题(如下图): ...

January 23, 2025 · 12 min · Tony Bai

对一段有关Go Code Block和变量作用域的代码的简要分析

近期,Go team的David CrawShaw在twitter上贴出了一段代码,如下: func main() { if a := 1; false { } else if b := 2; false { } else if c := 3; false { } else { println(a, b, c) } } David CrawShaw想表达的意图是gopher们很少在”else if”后面的simple statement中使用“短变量声明”形式,而这段代码是个例外。我们看到b、c两个变量都是在else if 的simple statement中使用短变量声明形式定义的。 ...

May 11, 2018 · 5 min · Tony Bai

走马观花ANSI C标准-标识符

标识符(identifier) 1、一个标识符可以表示: a) 对象(object) b) 函数(function) c) 结构体(struct)的标签(Tag)[注1] d) 结构体的成员 e) 联合体(union)或枚举类型(enumeration) f) 类型别名(typedef) g) 标签(label) h) 宏(macro) i) 宏参数(macro parameter) 同一个标识符在程序的“不同点”处可以表示不同的“实体”(entity)。[注2] 一个枚举(enumeration)的成员被称为一个“枚举常量,enumeration constant”。 ...

August 5, 2005 · 3 min · Tony Bai