11个现代Go特性:用gopls/modernize让你的代码焕然一新

本文永久链接 – https://tonybai.com/2025/04/15/embrace-modern-go-style-with-gopls-modernize 大家好,我是Tony Bai。 最近在思考Go语言的发展时,不禁让我想起了当年学习C++的经历。Bjarne Stroustrup在《C++程序设计语言(特别版)》中就专门强调了“现代 C++”(Modern C++)的编程风格,鼓励使用模板、STL等新特性来编写更优雅、更高效的C++代码。 ...

April 15, 2025 · 10 min · Tony Bai

Go语言中的深拷贝:概念、实现与局限

本文永久链接 – https://tonybai.com/2024/09/28/understand-deep-copy-in-go 前不久,在“Gopher部落”知识星球上回答了一个Gopher关于深拷贝(Deep Copy)的问题,让我感觉是时候探讨一下深拷贝技术了。 在日常开发工作中,深拷贝的使用频率相对较低,可能有80%的时间不需要使用深拷贝,只有在特定情况下才会遇到。这主要是因为大多数开发中处理的对象比较简单,通常只需使用浅拷贝(Shallow Copy)就能满足需求;此外,多数时候我们需要共享状态或数据,使用浅拷贝可以方便多个部分访问同一数据;最后,深拷贝通常比浅拷贝耗时更多,尤其是当对象嵌套较深时。因此,开发者倾向于选择更高效的浅拷贝。 ...

September 28, 2024 · 17 min · Tony Bai

Go项目初始化不再困扰你:gonew全方位解析

本文永久链接 – https://tonybai.com/2023/08/11/introduction-to-the-gonew-tool 近日,Go官博介绍了一个名为gonew的新工具。该工具支持基于go project template clone并创建一个属于你的Go项目。gonew工具的引入大幅简化了Go项目的创建,同时由于对自定义项目模板的支持,也可以提高Go项目的标准化水平。gonew工具刚刚被放入Go工具项目代码仓库,目前还处于实验阶段,后续可能会增加新特性,但当前的核心特性(core functionality)会持续保留。 ...

August 11, 2023 · 6 min · Tony Bai

图解git原理的几个关键概念

git是那个“爱骂人”的Linux之父Linus Torvalds继Linux内核后奉献给全世界程序员的第二个礼物(不能确定已经逐渐老去的Torvalds能否迸发第三春,第三次给我们一个超大惊喜^_^)。这里再强调一下,git读作**/git/,而不是/dʒit/**。 ...

April 7, 2020 · 15 min · Tony Bai