<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>标准库基础 on 编程那些事儿</title><link>https://before80.github.io/prgms/go/std/</link><description>Recent content in 标准库基础 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 30 Mar 2026 13:46:20 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/go/std/index.xml" rel="self" type="application/rss+xml"/><item><title>第1章：程序从 main 开始—— builtin 包</title><link>https://before80.github.io/prgms/go/std/Chapter-01-builtin/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-01-builtin/</guid><description>&lt;h1 id="第1章程序从-main-开始-builtin-包"&gt;第1章：程序从 main 开始—— builtin 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Go 语言的核心秘密，就藏在这个看不见摸不着的 &lt;code&gt;builtin&lt;/code&gt; 包里。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="11-builtin-包解决什么问题"&gt;1.1 builtin 包解决什么问题&lt;/h2&gt;
&lt;p&gt;想象一下，你在学 Go 的第一天，兴冲冲地写下了：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#76a9f9"&gt;package&lt;/span&gt; &lt;span style="color:#aa89ea"&gt;main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#76a9f9"&gt;func&lt;/span&gt; &lt;span style="color:#00b1f7"&gt;main&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;()&lt;/span&gt; &lt;span style="color:#abb2bf"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;var&lt;/span&gt; &lt;span style="color:#aa89ea"&gt;n&lt;/span&gt; &lt;span style="color:#e5c07b"&gt;int&lt;/span&gt; &lt;span style="color:#abb2bf"&gt;=&lt;/span&gt; &lt;span style="color:#d19a66"&gt;42&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e5c07b"&gt;println&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;(&lt;/span&gt;&lt;span style="color:#aa89ea"&gt;n&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#abb2bf"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;你没有 &lt;code&gt;import&lt;/code&gt; 任何东西，但 &lt;code&gt;int&lt;/code&gt;、&lt;code&gt;println&lt;/code&gt; 从哪来的？难道是凭空冒出来的？&lt;/p&gt;</description></item><item><title>第2章：和世界说话——fmt 包</title><link>https://before80.github.io/prgms/go/std/Chapter-02-fmt/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-02-fmt/</guid><description>&lt;h1 id="第2章和世界说话fmt-包"&gt;第2章：和世界说话——fmt 包&lt;/h1&gt;
&lt;div class="td-alert td-alert--md alert alert-note" role="alert"&gt;&lt;div class="td-alert-heading alert-heading" role="heading"&gt;说明&lt;/div&gt;
 &lt;div class="td-alert-body"&gt;
 &lt;p&gt;如果说程序是一个人的话，那么 &lt;code&gt;fmt&lt;/code&gt; 包就是他的嘴和耳朵。没有它，你的程序就是个哑巴，耳聋眼瞎，只能在内存里自言自语，多可怜啊！&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;想象一下，你写了一个计算器程序，结果它只会默默算，算完就什么都不说——那用户怎么知道 1+1=2 呢？总不能要求用户去读内存吧？所以，&lt;code&gt;fmt&lt;/code&gt; 包就是程序对外交流的桥梁，让你的程序既能&amp;quot;说话&amp;quot;（输出），也能&amp;quot;听话&amp;quot;（输入）。&lt;/p&gt;</description></item><item><title>第3章：程序出错怎么办——errors 包与 panic/recover</title><link>https://before80.github.io/prgms/go/std/Chapter-03-errors/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-03-errors/</guid><description>&lt;h1 id="第3章程序出错怎么办errors-包与-panicrecover"&gt;第3章：程序出错怎么办——errors 包与 panic/recover&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;代码跑得通，世界一片祥和；代码一报错，天塌地陷。&amp;rdquo; —— 某位被 bug 毒打过的程序员&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;程序运行从来不会一帆风顺，网络会断开、文件会丢失、用户会输入奇奇怪怪的东西。作为一门成熟的编程语言，Go 为我们准备了完善的错误处理机制。在这一章里，让我们一起来看看 Go 是如何优雅地表达和处理&amp;quot;意外&amp;quot;的。&lt;/p&gt;</description></item><item><title>第4章：让程序响应命令行——flag 包与 os 基础</title><link>https://before80.github.io/prgms/go/std/Chapter-04-flag-os/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-04-flag-os/</guid><description>&lt;h1 id="第4章让程序响应命令行flag-包与-os-基础"&gt;第4章：让程序响应命令行——flag 包与 os 基础&lt;/h1&gt;
&lt;p&gt;
 &lt;img src="https://img.shields.io/badge/Go-%e5%91%bd%e4%bb%a4%e8%a1%8c%e5%a4%84%e7%90%86-blue"
 alt="Go命令行"
 
 /&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;章前导读&lt;/strong&gt;：你有没有想过，为什么 &lt;code&gt;go run main.go -o output.txt&lt;/code&gt; 里的 &lt;code&gt;-o output.txt&lt;/code&gt; 能被程序&amp;quot;看懂&amp;quot;？是谁在默默做了翻译工作？答案就是本章的主角——&lt;code&gt;flag&lt;/code&gt; 包。而 &lt;code&gt;os&lt;/code&gt; 包则是 Go 程序与操作系统对话的万能翻译器。准备好了吗？让我们一起揭开命令行参数处理的神秘面纱！&lt;/p&gt;</description></item><item><title>第5章：放数据的容器——container/heap、container/list、container/ring</title><link>https://before80.github.io/prgms/go/std/Chapter-05-container/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-05-container/</guid><description>&lt;h1 id="第5章放数据的容器containerheapcontainerlistcontainerring"&gt;第5章：放数据的容器——container/heap、container/list、container/ring&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;人生苦短，何必用数组硬撑？来点容器，让数据住得舒服点。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Go语言的&lt;code&gt;container&lt;/code&gt;包是一个&amp;quot;数据结构博物馆&amp;quot;，里面住着三位性格迥异的居民：heap（堆）、list（双向链表）和ring（环形链表）。它们各有绝活，各有脾气，今天我们就来一一拜访。&lt;/p&gt;</description></item><item><title>第6章：泛型时代的基础工具——cmp、maps、slices、sort、strconv</title><link>https://before80.github.io/prgms/go/std/Chapter-06-alg-tool/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-06-alg-tool/</guid><description>&lt;h1 id="第6章泛型时代的基础工具cmpmapsslicessortstrconv"&gt;第6章：泛型时代的基础工具——cmp、maps、slices、sort、strconv&lt;/h1&gt;
&lt;p&gt;话说 Go 语言在 1.18 引入泛型之后，终于告别了&amp;quot;泛型缺失&amp;quot;的尴尬年代。到了 Go 1.21，标准库一口气推出了 &lt;code&gt;cmp&lt;/code&gt;、&lt;code&gt;maps&lt;/code&gt;、&lt;code&gt;slices&lt;/code&gt; 三个全新的泛型包，简直是给 Gopher 们送了一份大礼。在那之前，咱们写代码但凡要比较两个值、操作个 map、或者折腾一下切片，都得自己造轮子——重复的代码满天飞。现在好了，泛型一统江湖，这些工具函数终于可以优雅地复用啦！&lt;/p&gt;</description></item><item><title>第 7 章：数学运算——math、math/big、math/bits、math/cmplx</title><link>https://before80.github.io/prgms/go/std/Chapter-07-math/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-07-math/</guid><description>&lt;h1 id="第-7-章数学运算mathmathbigmathbitsmathcmplx"&gt;第 7 章：数学运算——math、math/big、math/bits、math/cmplx&lt;/h1&gt;
&lt;p&gt;数学是宇宙的语言，而 Go 的 math 包就是你和这门语言对话的翻译官。从简单的加减乘除到让人头秃的复数运算，Go 标准库提供了全套工具。本章将带你领略 Go 数学工具的魅力，顺便踩踩那些让人欲仙欲死的精度坑。&lt;/p&gt;</description></item><item><title>第 8 章：和时间打交道——time 包 ⭐</title><link>https://before80.github.io/prgms/go/std/Chapter-08-time/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-08-time/</guid><description>&lt;h1 id="第-8-章和时间打交道time-包-"&gt;第 8 章：和时间打交道——time 包 ⭐&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;时间是什么？时间是程序员最昂贵的资源，也是最难理解的类型。&amp;rdquo;
—— 某位被时区折磨过的 Go 开发者&lt;/p&gt;</description></item><item><title>第9章：随机数——math/rand、crypto/rand</title><link>https://before80.github.io/prgms/go/std/Chapter-09-rand/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-09-rand/</guid><description>&lt;h1 id="第9章随机数mathrandcryptorand"&gt;第9章：随机数——math/rand、crypto/rand&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;在计算机世界里，没有真正的随机数，只有足够复杂的伪随机数。&amp;rdquo; ——一位被骰子欺骗的程序员&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;随机数是现代计算的基石。从掷骰子游戏到密码学密钥，从蒙特卡洛模拟到机器学习，数据都离不开随机数。但你知道吗？计算机里的&amp;quot;随机数&amp;quot;其实都是&amp;quot;算计&amp;quot;出来的！本章带你揭开 Go 语言随机数包的神秘面纱。&lt;/p&gt;</description></item><item><title>第10章：字符是怎么存储的——Unicode 和 Unicode/UTF8</title><link>https://before80.github.io/prgms/go/std/Chapter-10-unicode/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-10-unicode/</guid><description>&lt;h1 id="第10章字符是怎么存储的unicode-和-unicodeutf8"&gt;第10章：字符是怎么存储的——Unicode 和 Unicode/UTF8&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;程序员的三大错觉：1. 字符串长度就是字符数；2. 一个字符就是一个字节；3. emoji 不过是彩色的 ASCII。&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>第11章：字符串操作——strings 包</title><link>https://before80.github.io/prgms/go/std/Chapter-11-strings/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-11-strings/</guid><description>&lt;h1 id="第11章字符串操作strings-包"&gt;第11章：字符串操作——strings 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;在 Go 的世界里，字符串是 immutable（不可变）的字节序列，听起来很限制对吧？但正是这种设计，让 strings 包成为了处理文本的瑞士军刀——稳定、可靠、从不闹脾气。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第 12 章：字节切片操作——bytes 包</title><link>https://before80.github.io/prgms/go/std/Chapter-12-bytes/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-12-bytes/</guid><description>&lt;h1 id="第-12-章字节切片操作bytes-包"&gt;第 12 章：字节切片操作——bytes 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;在 Go 的世界里，字符串是不可变的常量，而字节切片是江湖里最灵活的刀。&amp;rdquo;
——《Go 语言武林外传》&lt;/p&gt;</description></item><item><title>第13章：文本扫描与分词——bufio 包</title><link>https://before80.github.io/prgms/go/std/Chapter-13-bufio/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-13-bufio/</guid><description>&lt;h1 id="第13章文本扫描与分词bufio-包"&gt;第13章：文本扫描与分词——bufio 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;慢着点儿！别一个字节一个字节地往嘴里塞，bufio 给你准备了一个大碗，一次性吃饱！&amp;rdquo; —— bufio 的设计哲学&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Go 语言的 &lt;code&gt;bufio&lt;/code&gt; 包是 I/O 性能优化的大杀器。当你需要对文件、网络连接、标准输入输出进行读写时，&lt;code&gt;bufio&lt;/code&gt; 用缓冲区（Buffer）把多次小规模 I/O 合并成少量大规模 I/O，让你的程序快得像坐上了火箭。本章我们就来深入探索这个&amp;quot;装缓冲区&amp;quot;的魔法包。&lt;/p&gt;</description></item><item><title>第 14 章：正则表达式——regexp 包</title><link>https://before80.github.io/prgms/go/std/Chapter-14-regexp/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-14-regexp/</guid><description>&lt;h1 id="第-14-章正则表达式regexp-包"&gt;第 14 章：正则表达式——regexp 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;正则表达式，这个让程序员又爱又恨的小东西。爱它，是因为它能用几行代码解决你原本要写几百行才能搞定的问题；恨它，是因为那几行代码你可能得调试一整天。Google 开发的 RE2 引擎为 Go 语言提供了稳定、高效的正则实现——没有那些花里胡哨（反向引用、lookahead）的特性，反而让你的正则更安全、更可预测。&lt;/p&gt;</description></item><item><title>第15章：IO 框架——io 和 io/fs 包</title><link>https://before80.github.io/prgms/go/std/Chapter-15-io/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-15-io/</guid><description>&lt;h1 id="第15章io-框架io-和-iofs-包"&gt;第15章：IO 框架——io 和 io/fs 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;你有没有想过，读取一个文件、下载一个网页、从键盘获取输入——这些操作在底层其实惊人地相似？Go 的 io 包用几个极简接口，统一了世间所有的输入输出操作。这就是 Go 的哲学：&lt;strong&gt;小接口，大智慧&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>第 16 章：文件系统操作——os 包</title><link>https://before80.github.io/prgms/go/std/Chapter-16-os/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-16-os/</guid><description>&lt;h1 id="第-16-章文件系统操作os-包"&gt;第 16 章：文件系统操作——os 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎭 &amp;ldquo;在 Go 的世界里，os 包就是那个永远在线的『万能中介』——操作系统想搞事情？找它！程序想撩操作系统？也找它！&amp;rdquo;&lt;/p&gt;</description></item><item><title>第 17 章：路径处理——path 和 path/filepath</title><link>https://before80.github.io/prgms/go/std/Chapter-17-path/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-17-path/</guid><description>&lt;h1 id="第-17-章路径处理path-和-pathfilepath"&gt;第 17 章：路径处理——path 和 path/filepath&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;在程序员的世界里，路径分隔符是一个永恒的战争。Windows 阵营用 &lt;code&gt;\&lt;/code&gt;（反斜杠），Unix 阵营用 &lt;code&gt;/&lt;/code&gt;（正斜杠）。Go 标准库一不做二不休，直接搞了两个包来分别伺候这两位大爷——&lt;code&gt;path&lt;/code&gt; 包专门处理 URL 路径（永远假设是 &lt;code&gt;/&lt;/code&gt;），&lt;code&gt;path/filepath&lt;/code&gt; 包则处理真实的文件系统路径（乖乖使用操作系统原生分隔符）。这一章，我们就来扒一扒这两个包的十八般武艺。&lt;/p&gt;</description></item><item><title>第18章：JSON 编码——encoding/json</title><link>https://before80.github.io/prgms/go/std/Chapter-18-json/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-18-json/</guid><description>&lt;h1 id="第18章json-编码encodingjson"&gt;第18章：JSON 编码——encoding/json&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;前置知识&lt;/strong&gt;：本章节涉及 Go 结构体、接口、指针等概念，建议先阅读第 6 章（结构体）和第 11 章（接口）。&lt;/p&gt;
&lt;p&gt;📖 &lt;strong&gt;配套代码&lt;/strong&gt;：https://github.com/jollybling/Go-Standard-Library-Examples —— 欢迎 Star ⭐&lt;/p&gt;</description></item><item><title>第 19 章：其他数据格式——encoding 包全系列</title><link>https://before80.github.io/prgms/go/std/Chapter-19-encoding/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-19-encoding/</guid><description>&lt;h1 id="第-19-章其他数据格式encoding-包全系列"&gt;第 19 章：其他数据格式——encoding 包全系列&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 本章导读&lt;/p&gt;
&lt;p&gt;数据在内存中花样百出，传输时却只能变成一串字节流。encoding 包就是那个&amp;quot;变形金刚工厂&amp;quot;，把各种数据结构变成字节，或者把字节变回各种数据结构。本章将带你玩转 Go 标准库中所有的序列化与反序列化工具。&lt;/p&gt;</description></item><item><title>第 20 章：网络基础——net 包</title><link>https://before80.github.io/prgms/go/std/Chapter-20-net/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-20-net/</guid><description>&lt;h1 id="第-20-章网络基础net-包"&gt;第 20 章：网络基础——net 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🌐 网络，是让程序不再孤独的神奇东西。没有网络，你的程序就是一个孤岛，只能对着自己发呆。Go 的 &lt;code&gt;net&lt;/code&gt; 包，就是那座连接孤岛的桥。&lt;/p&gt;</description></item><item><title>第 21 章：HTTP 服务端——net/http</title><link>https://before80.github.io/prgms/go/std/Chapter-21-http-server/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-21-http-server/</guid><description>&lt;h1 id="第-21-章http-服务端nethttp"&gt;第 21 章：HTTP 服务端——net/http&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;互联网的每一秒，都有无数个 HTTP 请求在服务器间穿梭。你打开一个网页，是 HTTP；你调用一个 API，是 HTTP；你刷到一个视频，背后还是 HTTP。可以说，HTTP 就是互联网的&amp;quot;普通话&amp;quot;——虽然有时候说着说着就变成了 HTTPS（普通话加密版）。在这一章里，我们来探索 Go 标准库中那个让一切成为可能的包：&lt;code&gt;net/http&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>第 22 章：HTTP 客户端——net/http（续）</title><link>https://before80.github.io/prgms/go/std/Chapter-22-http-client/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-22-http-client/</guid><description>&lt;h1 id="第-22-章http-客户端nethttp续"&gt;第 22 章：HTTP 客户端——net/http（续）&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;「上一章我们学会了建服务器，这一章我们学会做客户。做一个好的 HTTP 客户端，可比当一个舔狗要复杂多了。」&lt;/p&gt;</description></item><item><title>第23章：URL、HTML 与 RPC</title><link>https://before80.github.io/prgms/go/std/Chapter-23-url-html-rpc/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-23-url-html-rpc/</guid><description>&lt;h1 id="第23章urlhtml-与-rpc"&gt;第23章：URL、HTML 与 RPC&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;互联网的三大基石：URL 让人找到东西，HTML 让人看懂东西，RPC 让人调用东西。三者合一，天下我有。&amp;rdquo;
—— 某位不愿透露姓名的 Go 语言爱好者&lt;/p&gt;</description></item><item><title>第 24 章：上下文管理——context 包</title><link>https://before80.github.io/prgms/go/std/Chapter-24-context/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-24-context/</guid><description>&lt;h1 id="第-24-章上下文管理context-包"&gt;第 24 章：上下文管理——context 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;想象一个场景：你点了一份外卖，骑手正在路上，但突然你不想要了——这时候你需要一种机制，能够让骑手停止配送。在 Go 的世界里，&lt;code&gt;context&lt;/code&gt; 包就是那个「外卖取消按钮」，让你能够在合适的时机优雅地停止正在进行的操作。&lt;/p&gt;</description></item><item><title>第 25 章：Goroutine 与 Channel ⭐</title><link>https://before80.github.io/prgms/go/std/Chapter-25-goroutine-channel/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-25-goroutine-channel/</guid><description>&lt;h1 id="第-25-章goroutine-与-channel-"&gt;第 25 章：Goroutine 与 Channel ⭐&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;想象一下，你是一个餐厅老板，以前只能雇一个服务员（线程），一次只能端一盘菜。但现在你可以雇无数个&amp;quot;小精灵&amp;quot;（goroutine），它们会魔法（channel）互相传递菜品，并发上菜，效率飞起！&lt;/p&gt;</description></item><item><title>第26章：同步原语——sync 包</title><link>https://before80.github.io/prgms/go/std/Chapter-26-sync/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-26-sync/</guid><description>&lt;h1 id="第26章同步原语sync-包"&gt;第26章：同步原语——sync 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;如果说 goroutine 是 Go 的高并发精髓，那 sync 包就是让这股&amp;quot;并发之力&amp;quot;不至于变成&amp;quot;并发灾难&amp;quot;的定海神针。本章我们来聊聊那些让多个 goroutine 和平共处、共同完成大业的同步原语。&lt;/p&gt;</description></item><item><title>第27章：原子操作——sync/atomic</title><link>https://before80.github.io/prgms/go/std/Chapter-27-atomic/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-27-atomic/</guid><description>&lt;h1 id="第27章原子操作syncatomic"&gt;第27章：原子操作——sync/atomic&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;在多线程的江湖里，锁是大门，原子操作就是魔法。学会了原子操作，你就是那个不用钥匙就能穿墙而过的巫师。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="271-syncatomic-解决什么问题"&gt;27.1 sync/atomic 解决什么问题&lt;/h2&gt;
&lt;h3 id="锁的粒度太粗计数器标志位等简单操作用原子操作比锁更快"&gt;锁的粒度太粗，计数器、标志位等简单操作用原子操作比锁更快&lt;/h3&gt;
&lt;p&gt;想象你去便利店买薯片，结果门口站了个保安，保安说：&amp;ldquo;整个便利店我都要管，你进去买个薯片得先问我要钥匙。&amp;ldquo;这，就是互斥锁。&lt;/p&gt;</description></item><item><title>第 28 章：单元测试——testing 包</title><link>https://before80.github.io/prgms/go/std/Chapter-28-testing/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-28-testing/</guid><description>&lt;h1 id="第-28-章单元测试testing-包"&gt;第 28 章：单元测试——testing 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;代码写得好不好，先让测试跑一跑。&amp;rdquo;
—— 某位被 bug 折磨疯了的程序员&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;话说当年 Go 语言设计者 Rob Pike 坐下来思考：&amp;ldquo;我们要不要也像 Java 那样搞个 JUnit？那岂不是显得我们很没个性？&amp;rdquo;&lt;/p&gt;</description></item><item><title>第 29 章：反射——reflect 包</title><link>https://before80.github.io/prgms/go/std/Chapter-29-reflect/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-29-reflect/</guid><description>&lt;h1 id="第-29-章反射reflect-包"&gt;第 29 章：反射——reflect 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;当你凝视深渊时，深渊也在凝视你。当你凝视 reflect 包时，Go 编译器笑了——因为你放弃了一眼就能看懂的代码。&amp;rdquo; ——一位不愿透露姓名的 Gopher&lt;/p&gt;</description></item><item><title>第30章：图像处理——image 包</title><link>https://before80.github.io/prgms/go/std/Chapter-30-image/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-30-image/</guid><description>&lt;h1 id="第30章图像处理image-包"&gt;第30章：图像处理——image 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎨 &amp;ldquo;一图胜千言&amp;rdquo;，在程序员的世界里，一张验证码图片能挡住99%的机器人爬虫，一张缩略图能让网页加载快到飞起，一个海报合成功能能让运营小姑娘少加三天班。这一切的神奇魔法，都藏在 Go 的 &lt;code&gt;image&lt;/code&gt; 包里。&lt;/p&gt;</description></item><item><title>第31章：文本索引——index/suffixarray 包</title><link>https://before80.github.io/prgms/go/std/Chapter-31-suffixarray/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-31-suffixarray/</guid><description>&lt;h1 id="第31章文本索引indexsuffixarray-包"&gt;第31章：文本索引——index/suffixarray 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;在海量文本中寻找一个字符串，就像在大海捞针。但有了后缀数组，你就有了金属探测器。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="311-indexsuffixarray包解决什么问题在大量文本中快速查找子串suffix-array-后缀数组"&gt;31.1 index/suffixarray包解决什么问题：在大量文本中快速查找子串——Suffix Array 后缀数组&lt;/h2&gt;
&lt;p&gt;想象一下，你有一本《战争与和平》（俄文原版，约230万字符），然后你问自己：&amp;quot;&amp;lsquo;安娜&amp;rsquo;这个姑娘出现了多少次？都在哪些位置？&amp;quot;&lt;/p&gt;</description></item><item><title>第32章：迭代器——iter 包（Go 1.23+）</title><link>https://before80.github.io/prgms/go/std/Chapter-32-iter/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-32-iter/</guid><description>&lt;h1 id="第32章迭代器iter-包go-123"&gt;第32章：迭代器——iter 包（Go 1.23+）&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;曾经，Go 语言的 for 循环是出了名的简洁直白。但随着函数式编程的浪潮席卷全球，Go 也在 1.23 版本里偷偷学了几招——iter 包就这么登场了。它不是来取代 for 循环的，它是来给 for 循环装上涡轮增压的。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第33章：压缩——compress 系列</title><link>https://before80.github.io/prgms/go/std/Chapter-33-compress/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-33-compress/</guid><description>&lt;h1 id="第33章压缩compress-系列"&gt;第33章：压缩——compress 系列&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;数据的肥胖症，是数字时代的通病。而 Go 语言的 compress 包，就是你的私人健身教练。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在这个数据爆炸的时代，你的硬盘像是一个永远吃不饱的胖子，网络带宽则像是一条永远不够粗的水管。compress 包就是来解决这个问题的——让你的数据&amp;quot;减肥&amp;quot;，让传输&amp;quot;提速&amp;quot;。&lt;/p&gt;</description></item><item><title>第 34 章：归档——archive 系列</title><link>https://before80.github.io/prgms/go/std/Chapter-34-archive/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-34-archive/</guid><description>&lt;h1 id="第-34-章归档archive-系列"&gt;第 34 章：归档——archive 系列&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎒 想象一下，你要搬家，但把所有家具都拆成零件打包进一个大箱子——这大概就是归档（archive）的意义。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="341-archive-包解决什么问题多个文件需要打包成一个文件传输或存储"&gt;34.1 archive 包解决什么问题：多个文件需要打包成一个文件传输或存储&lt;/h2&gt;
&lt;h3 id="-概念解释"&gt;📖 概念解释&lt;/h3&gt;
&lt;p&gt;在日常开发中，我们经常遇到这样的场景：&lt;/p&gt;</description></item><item><title>第 35 章：密码学基础——crypto 包全览</title><link>https://before80.github.io/prgms/go/std/Chapter-35-crypto/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-35-crypto/</guid><description>&lt;h1 id="第-35-章密码学基础crypto-包全览"&gt;第 35 章：密码学基础——crypto 包全览&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;密码学：让窃听者抓狂，让程序员秃头的神秘艺术。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;想象一下，你在网上购物时输入信用卡密码，这个密码要安全地穿过复杂的网络到达服务器——这背后就是密码学在默默保护你。Go 语言的 &lt;code&gt;crypto&lt;/code&gt; 包就是这场数字保镖秀的主角，它提供了 HTTPS 加密、数据完整性验证、用户认证、数字签名等核心功能。没有密码学，你的隐私就像放在公共厕所的蛋糕——谁都能尝一口。&lt;/p&gt;</description></item><item><title>第36章：对称加密与哈希——crypto/aes、crypto/cipher、hash/*</title><link>https://before80.github.io/prgms/go/std/Chapter-36-symmetric-crypto/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-36-symmetric-crypto/</guid><description>&lt;h1 id="第36章对称加密与哈希cryptoaescryptocipherhash"&gt;第36章：对称加密与哈希——crypto/aes、crypto/cipher、hash/*&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本章目标：让你在保护数据隐私的战场上，像007一样优雅地加密和解密，同时搞懂那些哈希函数的来龙去脉。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;想象一下：你给朋友寄一封情书，但不想让邮递员偷看。怎么办呢？你和你的朋友各有一把相同的钥匙🔑，你用这把钥匙把信锁进一个盒子，朋友收到后用同一把钥匙打开。这就是&lt;strong&gt;对称加密&lt;/strong&gt;——发送方和接收方持有同一把密钥，加密和解密都用它。&lt;/p&gt;</description></item><item><title>第 37 章 非对称加密与签名</title><link>https://before80.github.io/prgms/go/std/Chapter-37-asymmetric-crypto/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-37-asymmetric-crypto/</guid><description>&lt;h1 id="第-37-章-非对称加密与签名"&gt;第 37 章 非对称加密与签名&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;对称加密就像一把钥匙开一把锁，但如果你要把钥匙交给快递小哥，可就麻烦了。非对称加密的出现，终于让&amp;rsquo;信任&amp;rsquo;这个问题变得可以数学证明了。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第38章：TLS 与证书——crypto/tls、crypto/x509</title><link>https://before80.github.io/prgms/go/std/Chapter-38-tls/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-38-tls/</guid><description>&lt;h1 id="第38章tls-与证书cryptotlscryptox509"&gt;第38章：TLS 与证书——crypto/tls、crypto/x509&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;HTTP 是明信片，TLS 就是信封。没有 TLS，你的密码就像用透明胶带粘在明信片上的信用卡号——技术上能用，但迟早被人看光光。&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>第39章：数据库访问——database/sql</title><link>https://before80.github.io/prgms/go/std/Chapter-39-database/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-39-database/</guid><description>&lt;h1 id="第39章数据库访问databasesql"&gt;第39章：数据库访问——database/sql&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;程序员的三大难题：缓存失效、命名、再加一个分布式事务——等等，我忘了我还在学怎么查数据库。&amp;rdquo; ——某位不愿透露姓名的Gopher&lt;/p&gt;</description></item><item><title>第 40 章：运行时信息——runtime 包</title><link>https://before80.github.io/prgms/go/std/Chapter-40-runtime/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-40-runtime/</guid><description>&lt;h1 id="第-40-章运行时信息runtime-包"&gt;第 40 章：运行时信息——runtime 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Go 的 runtime 就像是那个默默在后台辛勤工作的行政助理——你很少注意到它，但没了它，整个办公室就得停摆。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第41章：日志系统——log 和 log/slog</title><link>https://before80.github.io/prgms/go/std/Chapter-41-logging/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-41-logging/</guid><description>&lt;h1 id="第41章日志系统log-和-logslog"&gt;第41章：日志系统——log 和 log/slog&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;章节导航&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;41.1-41.8：&lt;code&gt;log&lt;/code&gt; 包（古老但经典的日志选手）&lt;/li&gt;
&lt;li&gt;41.9-41.18：&lt;code&gt;log/slog&lt;/code&gt; 包（Go 1.21+ 结构化日志新贵）&lt;/li&gt;
&lt;li&gt;41.19-41.20：&lt;code&gt;expvar&lt;/code&gt; 包（默默奉献的指标暴露小能手）&lt;/li&gt;
&lt;li&gt;本章小结：知识点大复盘&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="411-log包解决什么问题"&gt;41.1 log包解决什么问题&lt;/h2&gt;
&lt;p&gt;想象一下这个场景：你写了一个 Web 服务，凌晨3点挂了。用户投诉电话打爆了你的手机，你却一脸懵逼——程序怎么挂的？最后一刻发生了什么？&lt;/p&gt;</description></item><item><title>第42章：Go 词法分析——go/token、go/scanner</title><link>https://before80.github.io/prgms/go/std/Chapter-42-go-toolchain/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-42-go-toolchain/</guid><description>&lt;h1 id="第42章go-词法分析gotokengoscanner"&gt;第42章：Go 词法分析——go/token、go/scanner&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;你有没有想过，Go 编译器是怎么&amp;quot;看懂&amp;quot;你写的代码的？它可不是盯着屏幕读小说的——它首先会把你的代码拆成一个个小小的&amp;quot;积木块&amp;quot;，然后告诉语法分析器：&amp;ldquo;嘿，这里有个标识符，那里有个加号，还有一对括号！&amp;ldquo;这个拆解的过程，就叫做&lt;strong&gt;词法分析&lt;/strong&gt;，而负责这项苦力活的两大功臣，就是 &lt;code&gt;go/token&lt;/code&gt; 和 &lt;code&gt;go/scanner&lt;/code&gt; 这对欢喜冤家。&lt;/p&gt;</description></item><item><title>第43章：Go 语法树——go/ast、go/parser</title><link>https://before80.github.io/prgms/go/std/Chapter-43-ast-parser/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-43-ast-parser/</guid><description>&lt;h1 id="第43章go-语法树goastgoparser"&gt;第43章：Go 语法树——go/ast、go/parser&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;程序员最浪漫的事，不是写代码，而是让代码自己读懂自己。&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;当你写下一个 &lt;code&gt;fmt.Println(&amp;quot;Hello&amp;quot;)&lt;/code&gt;，Go 编译器默默把你的代码拆成一个个最小的语法单元，然后像搭积木一样把它们组装成一棵树。这棵树，就是抽象语法树（AST）。有了它，IDE 能给你自动补全，gofmt 能帮你格式化，静态分析工具能找出你代码里的 bug。这，就是 go/ast 和 go/parser 的魔法世界。&lt;/p&gt;</description></item><item><title>第44章：代码生成与检查——go/printer、go/format、go/doc、go/types、go/build</title><link>https://before80.github.io/prgms/go/std/Chapter-44-code-gen/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-44-code-gen/</guid><description>&lt;h1 id="第44章代码生成与检查goprintergoformatgodocgotypesgobuild"&gt;第44章：代码生成与检查——go/printer、go/format、go/doc、go/types、go/build&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;写代码一时爽，代码审查火葬场？不存在的！Go语言的标准库自带了一整套&amp;rsquo;代码医生&amp;rsquo;工具，从语法树打印到类型检查，从文档提取到包信息查询，应有尽有。本章让我们一起揭开这些&amp;rsquo;代码手术刀&amp;rsquo;的神秘面纱。&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>第45章：调试信息——debug/dwarf、debug/elf、debug/macho、debug/pe</title><link>https://before80.github.io/prgms/go/std/Chapter-45-debug/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-45-debug/</guid><description>&lt;h1 id="第45章调试信息debugdwarfdebugelfdebugmachodebugpe"&gt;第45章：调试信息——debug/dwarf、debug/elf、debug/macho、debug/pe&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎯 章节预告：编译好的 Go 程序像个神秘的&amp;quot;黑盒子&amp;quot;，运行起来出问题了怎么办？debug 包家族让你&amp;quot;透视&amp;quot;二进制文件，读取 DWARF 调试信息、解析 ELF/Mach-O/PE 格式、解读 Go 符号表。准备好了吗？让我们开启二进制世界的&amp;quot;X光&amp;quot;之旅！&lt;/p&gt;</description></item><item><title>第 46 章：系统调用——syscall 包</title><link>https://before80.github.io/prgms/go/std/Chapter-46-syscall/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-46-syscall/</guid><description>&lt;h1 id="第-46-章系统调用syscall-包"&gt;第 46 章：系统调用——syscall 包&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;想象一下，你正在对操作系统说&amp;quot;嘿，能帮我打开这个文件吗？&amp;quot;——syscall 包就是翻译官，把你的 Go 代码翻译成操作系统能听懂的语言。&lt;/p&gt;</description></item><item><title>第 47 章：插件与 CGO</title><link>https://before80.github.io/prgms/go/std/Chapter-47-plugin-cgo/</link><pubDate>Mon, 30 Mar 2026 13:43:00 +0800</pubDate><guid>https://before80.github.io/prgms/go/std/Chapter-47-plugin-cgo/</guid><description>&lt;h1 id="第-47-章插件与-cgo"&gt;第 47 章：插件与 CGO&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;程序写完就固定了？不，我们可以让它在运行时还能加载新代码——这就是插件的魔法。&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;什么？你想把配置文件直接塞进二进制里？embed 说：我全都要。&amp;rdquo;&lt;/p&gt;</description></item></channel></rss>