<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Pointer on Tony Bai</title><link>https://tonybai.com/tags/pointer/</link><description>Recent content in Pointer on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Sat, 11 Oct 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/pointer/index.xml" rel="self" type="application/rss+xml"/><item><title>Go 作为第一门编程语言：天才之选还是糟糕开端？</title><link>https://tonybai.com/2025/10/11/go-is-a-good-first-programming-language/</link><pubDate>Sat, 11 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/11/go-is-a-good-first-programming-language/</guid><description>Go 作为第一门编程语言：天才之选还是糟糕开端？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 Go...</description></item><item><title>从 Rob Pike 的提案到社区共识：Go 或将通过 new(v) 彻底解决指针初始化难题</title><link>https://tonybai.com/2025/08/17/create-pointer-to-simple-types/</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/17/create-pointer-to-simple-types/</guid><description>本文永久链接 – https://tonybai.com/2025/08/17/create-pointer-to-simple-types 大家好，我是Tony Bai。 在 Go 中创建一个指向基本类型（如 int 或 string）的指针，为何比创建一个指向结构体的指针更繁琐？这个长期存在的“人体工程学”问题，由 Go 语言的共同创造者之一 **Rob Pike** 在提案 #45624 中...</description></item><item><title>GCP大面积故障，Go语言是“元凶”还是“背锅侠”？</title><link>https://tonybai.com/2025/06/16/go-avoid-critical-incident/</link><pubDate>Mon, 16 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/16/go-avoid-critical-incident/</guid><description>GCP大面积故障，Go语言是“元凶”还是“背锅侠”？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 ...</description></item><item><title>Go 1.25新特性前瞻：GC提速，容器更“懂”Go，json有v2了！</title><link>https://tonybai.com/2025/06/14/go-1-25-foresight/</link><pubDate>Sat, 14 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/14/go-1-25-foresight/</guid><description>Go 1.25新特性前瞻：GC提速，容器更“懂”Go，json有v2了！ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课...</description></item><item><title>从线下到线上，我的“Go语言进阶课”终于在极客时间与大家见面了！</title><link>https://tonybai.com/2025/05/12/go-advanced-course/</link><pubDate>Mon, 12 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/12/go-advanced-course/</guid><description>从线下到线上，我的“Go语言进阶课”终于在极客时间与大家见面了！ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ ...</description></item><item><title>解读“Cheating the Reaper”：在Go中与GC共舞的Arena黑科技</title><link>https://tonybai.com/2025/05/06/cheating-the-reaper-in-go/</link><pubDate>Tue, 06 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/06/cheating-the-reaper-in-go/</guid><description>解读“Cheating the Reaper”：在Go中与GC共舞的Arena黑科技 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * G...</description></item><item><title>一个字符引发的30%性能下降：Go值接收者的隐藏成本与优化</title><link>https://tonybai.com/2025/04/25/hidden-costs-of-go-value-receiver/</link><pubDate>Fri, 25 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/25/hidden-costs-of-go-value-receiver/</guid><description>一个字符引发的30%性能下降：Go值接收者的隐藏成本与优化 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关...</description></item><item><title>“Go is badly designed”？它像极了我们当年恨过的物理老师！</title><link>https://tonybai.com/2025/04/17/go-is-badly-designed/</link><pubDate>Thu, 17 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/17/go-is-badly-designed/</guid><description>“Go is badly designed”？它像极了我们当年恨过的物理老师！ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言...</description></item><item><title>Go导出标识符：那些鲜为人知的细节</title><link>https://tonybai.com/2025/01/23/the-hidden-details-of-go-exported-identifiers/</link><pubDate>Thu, 23 Jan 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/01/23/the-hidden-details-of-go-exported-identifiers/</guid><description>本文永久链接 – https://tonybai.com/2025/01/23/the-hidden-details-of-go-exported-identifiers 前不久，在“Go+用户组”微信群里看到有开发者向七牛云老板许式伟反馈七牛云Go SDK中的某些类型没有导出，导致外部包无法使用的问题(如下图)： 七牛开发人员迅速对该问题做出了“更正”，将问题反馈中涉及的类型saveasArgs...</description></item><item><title>Go 1.24新特性前瞻：工具链和标准库</title><link>https://tonybai.com/2024/12/17/go-1-24-foresight-part2/</link><pubDate>Tue, 17 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/17/go-1-24-foresight-part2/</guid><description>本文永久链接 – https://tonybai.com/2024/12/17/go-1-24-foresight-part2 在上一篇文章中，我们介绍了即将于2025年2月发布的Go 1.24版本在语法、编译器和运行时方面的主要变化。本文将继续承接上文，重点介绍Go 1.24在工具链和标准库方面的重要更新，供大家参考。 1\. 工具链 ------- 1.1 go.mod新增tool指示符，支持...</description></item><item><title>Go 1.24新特性前瞻：语法、编译器与运行时</title><link>https://tonybai.com/2024/12/16/go-1-24-foresight-part1/</link><pubDate>Mon, 16 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/16/go-1-24-foresight-part1/</guid><description>Go 1.24新特性前瞻：语法、编译器与运行时 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go 1.24新特性...</description></item><item><title>Go：值与指针</title><link>https://tonybai.com/2023/05/05/go-value-and-pointer/</link><pubDate>Fri, 05 May 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/05/05/go-value-and-pointer/</guid><description>本文永久链接 – https://tonybai.com/2023/05/05/go-value-and-pointer 1\. 计算机中的值 ---------- 在百万年的演化历史中，人类对事物的属性进行了抽象，有了数量、精度、信息等概念的表示，对应的我们称之为整数、小数、文本文字等。计算机出现后，我们使用计算机对真实世界的问题进行建模，通过计算机的高效计算解决这些问题并输出答案。为了建模，计...</description></item><item><title>一文告诉你哪些map element类型支持就地更新</title><link>https://tonybai.com/2023/04/02/map-element-types-support-in-place-update/</link><pubDate>Sun, 02 Apr 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/04/02/map-element-types-support-in-place-update/</guid><description>本文永久链接 – https://tonybai.com/2023/04/02/map-element-types-support-in-place-update 年初，我代表团队和人民邮电出版社签订了翻译《Go Fundamentals》一书的合同，本月底便是四分之一进度的交稿时间点，近期闲时我们都在忙着做交叉review。 上周末我review小伙伴翻译的有关map类型的章节时，看到了书中对m...</description></item><item><title>Go 1.20中值得关注的几个变化</title><link>https://tonybai.com/2023/02/08/some-changes-in-go-1-20/</link><pubDate>Wed, 08 Feb 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/02/08/some-changes-in-go-1-20/</guid><description>本文永久链接 – https://tonybai.com/2023/02/08/some-changes-in-go-1-20 美国时间2023年2月1日，唯一尚未退休的Go语言之父Robert Griesemer代表Go核心开发团队在Go官博撰文正式发布了Go 1.20版本。就像Russ Cox在2022 GopherCon大会所说的那样：**Go2永不会到来，Go 1.x.y将无限延续**！ ...</description></item><item><title>聊聊Prometheus Gauge的增减操作实现</title><link>https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub/</link><pubDate>Tue, 10 Jan 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub/</guid><description>本文永久链接 – https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub 1\. Gauge是啥？ 熟悉Prometheus的小伙伴们都知道Prometheus提供了四大指标类型： * Counter * Gauge * Histogram * Summary Histogram和Summary是一类，但理解起来稍复杂一些，这...</description></item><item><title>Go语言map类型变量背后的那些事儿</title><link>https://tonybai.com/2022/03/15/the-underlying-of-a-map-type-variable/</link><pubDate>Tue, 15 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/15/the-underlying-of-a-map-type-variable/</guid><description>本文永久链接 – https://tonybai.com/2022/03/15/the-underlying-of-a-map-type-variable 切片(slice)和map是Go语言中最常用的两种原生复合数据类型，同时也是最容易使初学者感觉迷惑和“掉坑”的两个类型，这很大程度是因为Go runtime层的存在。什么是Go runtime层？可以参考我在《Go语言第一课FAQ》中的解释。 ...</description></item><item><title>Go GC如何检测内存对象中是否包含指针</title><link>https://tonybai.com/2022/02/21/how-gc-detect-pointer-in-mem-obj/</link><pubDate>Mon, 21 Feb 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/02/21/how-gc-detect-pointer-in-mem-obj/</guid><description>本文永久链接 – https://tonybai.com/2022/02/21/how-gc-detect-pointer-in-mem-obj 众所周知，Go是带垃圾回收(GC)的编程语言，开发者通常不需要考虑对内存的管理，降低了心智负担。Go程序运行的时候，GC在背后默默辛劳地为开发者**“擦屁股”**：把无法reach到的内存对象定期地释放掉以备后续重用。 GC只关心**指针**，只要被扫描...</description></item><item><title>Go 1.17新特性详解：支持将切片转换为数组指针</title><link>https://tonybai.com/2021/08/18/go-language-specs-changes-in-go-1-17/</link><pubDate>Wed, 18 Aug 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/08/18/go-language-specs-changes-in-go-1-17/</guid><description>本文永久链接 – https://tonybai.com/2021/08/18/go-language-specs-changes-in-go-1-17 Go属于那种极简的语言，从诞生到现在语言自身特性变化很小，不会像其他主流语言那样走“你有的我也要有”的特性融合路线。因此新语言特性对于Gopher来说属于“稀缺品”，属于“供不应求”那类事物^\_^。这也直接导致了每次Go新版本发布，我们都要首先...</description></item><item><title>Go 1.17中值得关注的几个变化</title><link>https://tonybai.com/2021/08/17/some-changes-in-go-1-17/</link><pubDate>Tue, 17 Aug 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/08/17/some-changes-in-go-1-17/</guid><description>本文永久链接 – https://tonybai.com/2021/08/17/some-changes-in-go-1-17 Go核心开发团队在去年GopherCon大会上给Go泛型的定调是在2022年2月份的Go 1.18版本中发布，那可是自Go诞生以来语法规范变动最大的一次，这让包括笔者在内的全世界的Gopher们都满怀期待。 不过别忘了，在Go 1.18这个“网红版本”发布前，还有一个“实...</description></item><item><title>Go 1.14中值得关注的几个变化</title><link>https://tonybai.com/2020/03/08/some-changes-in-go-1-14/</link><pubDate>Sun, 08 Mar 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/03/08/some-changes-in-go-1-14/</guid><description>可能是得益于2020年2月26日Go 1.14的发布，在2020年3月份的TIOBE编程语言排行榜上，Go重新进入TOP 10，而去年同期Go仅排行在第18位。虽然Go语言以及其他主流语言在榜单上的“上蹿下跳”让这个榜单的权威性饱受质疑:)，但Go在这样的一个时间节点能进入TOP 10，对于Gopher和Go社区来说，总还是一个不错的结果。并且在一定层度上说明：Go在努力耕耘十年后，已经在世界主流...</description></item><item><title>记一次go panic问题的解决过程</title><link>https://tonybai.com/2019/04/04/notes-about-fixing-a-go-panic-problem/</link><pubDate>Thu, 04 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/04/notes-about-fixing-a-go-panic-problem/</guid><description>一. Panic问题概述 ------------ 本周收到客户在bugclose上填写的一个issue：添加一个下发通道后，pushd程序panic并退出了！程序panic时输出的stacktrace信息摘录如下： panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: se...</description></item><item><title>《Understanding and Using C Pointers》要点先睹为快</title><link>https://tonybai.com/2013/05/28/understanding-and-using-c-pointers-keypoint-preview/</link><pubDate>Tue, 28 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/28/understanding-and-using-c-pointers-keypoint-preview/</guid><description>_如果你问十个C程序员：你觉得C语言的核心是什么？这十个程序员都会回答：指针。_ 指针具备成为C语言核心的两个关键要素：**强大**与**争议**。 \* **指针的强大**源自于其天生与机器内存模型的适配。使用指针让代码紧凑，并可获得仅次于汇编代码的执行效率；使用指针可以让C程 序员毫不费力地尽情操纵着内存中的每个byte甚至是bit；使用指针可以为C程序员提供无与伦比的操作灵活性。总之，在C语...</description></item><item><title>C,C++开源项目中的100个Bugs</title><link>https://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/</link><pubDate>Wed, 10 Apr 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/</guid><description>俄罗斯OOO Program Verification Systems公司用自己的静态源码分析产品PVS-Studio对一些知名的C/C++开源项目，诸如Apache Http Server、Chromium、Clang、CMake、MySQL等的源码进行了分析，找出了100个典型的Bugs。个人觉得这份列表对C/C++ 程序员有一定参考意义。与其说事后用静态工具分析，倒不如在编码时就提高自知自觉...</description></item><item><title>简析指针与多维数组</title><link>https://tonybai.com/2013/03/28/pointer-and-multi-dimension-array-in-c/</link><pubDate>Thu, 28 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/28/pointer-and-multi-dimension-array-in-c/</guid><description>上一篇文章中对多级指针做了简要分析，其实只有当指针与多维数组以及函数联合在一起使用时，麻烦才算真正到来。 **零、数组****与数组名** C语言)中的数组的一般声明形式如下： T arr\_name\[n\]; /\* T为类型，n为数组元素个数 \*/ 从**内存布局**角度来说，数组T arr\_name\[n\]就是内存中连续的内存单元，每个内存单元的长度为sizeof(T)，数组的起始内...</description></item><item><title>简析多级指针解引用</title><link>https://tonybai.com/2013/03/23/multi-dimension-pointer-in-c/</link><pubDate>Sat, 23 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/23/multi-dimension-pointer-in-c/</guid><description>指针是C语言)中公认的最为强大的语法要素，但同时也是最难理解的语法要素，它曾给程序员带来了无数麻烦和痛苦，以致于在C语言之后诞生的很多新兴 语言中我们再也难觅指针的身影了。 下面是一个最简单的C语言指针的例子： int a = 5; int \*p = &amp;amp;a; 其中p就是一个指针变量。如果C语言中仅仅存在这类指针，那显然指针不会形成“大患”。经常地我们会在代码中看到下面的情形： int \*\*q...</description></item></channel></rss>