<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>标准库 on PlumePHP</title><link>https://plumephp.com/tags/%E6%A0%87%E5%87%86%E5%BA%93/</link><description>Recent content in 标准库 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 13 Aug 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E6%A0%87%E5%87%86%E5%BA%93/index.xml" rel="self" type="application/rss+xml"/><item><title>Go io.Reader 与 io.Writer 深度解析：接口设计与流式编程哲学</title><link>https://plumephp.com/102-io-reader-writer-deep-dive/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/102-io-reader-writer-deep-dive/</guid><description>&lt;h2 id="一go-接口设计哲学小而美的艺术"&gt;一、Go 接口设计哲学：小而美的艺术&lt;/h2&gt;
&lt;p&gt;Go 语言的接口设计哲学可以用四个词概括：&lt;strong&gt;正交、组合、小而美、隐式实现&lt;/strong&gt;。与其他语言中动辄几十个方法的庞大接口不同，Go 的标准库中绝大多数接口都只有一个或两个方法。这种极简主义设计并非偶然，而是深思熟虑后的工程决策。&lt;/p&gt;</description></item><item><title>Go bufio 包完全实战指南：逐行扫描、缓冲读写与流式处理优化</title><link>https://plumephp.com/go-bufio-scanner-reader/</link><pubDate>Wed, 13 Aug 2025 10:00:00 +0800</pubDate><guid>https://plumephp.com/go-bufio-scanner-reader/</guid><description>&lt;h2 id="不是所有文件都应该一次读进内存"&gt;不是所有文件都应该一次读进内存&lt;/h2&gt;
&lt;p&gt;入门阶段我们常用 &lt;code&gt;os.ReadFile&lt;/code&gt; 一次性读取文件内容，这种方式对配置文件和小数据文件非常方便。但当文件增长到几百 MB 甚至几个 GB 时，一次读进内存就不再合适。日志分析、CSV 处理、文本转换、命令行过滤工具，都更适合边读边处理的方式。&lt;/p&gt;</description></item><item><title>Go io.Reader 与 io.Writer 实战完全指南：从设计哲学到流式处理</title><link>https://plumephp.com/go-io-reader-writer-practical-guide/</link><pubDate>Wed, 13 Aug 2025 10:00:00 +0800</pubDate><guid>https://plumephp.com/go-io-reader-writer-practical-guide/</guid><description>&lt;h2 id="io-接口设计哲学小而美的力量"&gt;io 接口设计哲学：小而美的力量&lt;/h2&gt;
&lt;p&gt;Go 标准库中最伟大的设计之一，就是 &lt;code&gt;io.Reader&lt;/code&gt; 和 &lt;code&gt;io.Writer&lt;/code&gt; 这两个接口。它们小到几乎不能再小，却支撑起了整个 Go 生态系统的数据流处理。这种设计理念源自 Go 的接口哲学：接口应该由使用者定义，而不是由实现者预设。&lt;/p&gt;</description></item><item><title>Go regexp 包实战完全指南：正则语法、性能优化与常见模式</title><link>https://plumephp.com/go-regexp-practical-guide/</link><pubDate>Wed, 13 Aug 2025 10:00:00 +0800</pubDate><guid>https://plumephp.com/go-regexp-practical-guide/</guid><description>&lt;h2 id="正则很好用但不要让它变成谜语"&gt;正则很好用，但不要让它变成谜语&lt;/h2&gt;
&lt;p&gt;正则表达式适合处理文本模式：校验格式、提取字段、替换内容、扫描日志。Go 标准库提供了 &lt;code&gt;regexp&lt;/code&gt; 包，使用起来比较直接。你可以编译一个正则，判断字符串是否匹配，也可以查找子匹配，把日志行拆成结构化数据。&lt;/p&gt;</description></item><item><title>Go 排序与搜索集合完全指南：sort 包、container 包与泛型 slices 对比</title><link>https://plumephp.com/go-sort-search-and-collections/</link><pubDate>Wed, 13 Aug 2025 10:00:00 +0800</pubDate><guid>https://plumephp.com/go-sort-search-and-collections/</guid><description>&lt;h2 id="业务代码里到处都是排序"&gt;业务代码里到处都是排序&lt;/h2&gt;
&lt;p&gt;文章按发布时间倒序排列，订单按金额排序，排行榜按分数排序，后台列表按状态和创建时间排序。排序看起来是基础算法，但在业务代码中出现的频率极高。Go 标准库的 &lt;code&gt;sort&lt;/code&gt; 包提供了覆盖绝大多数需求的排序能力，而更进一步的 &lt;code&gt;container&lt;/code&gt; 包则提供了堆、双向链表和循环缓冲区等高级数据结构。&lt;/p&gt;</description></item><item><title>Go 静态文件处理全历史演进：从 go-bindata 到 embed 完全指南</title><link>https://plumephp.com/go-static-files-before-embed/</link><pubDate>Wed, 13 Aug 2025 10:00:00 +0800</pubDate><guid>https://plumephp.com/go-static-files-before-embed/</guid><description>&lt;h2 id="静态资源也是-web-服务的一部分"&gt;静态资源也是 Web 服务的一部分&lt;/h2&gt;
&lt;p&gt;写 Go Web 服务时，你可能需要提供 CSS、图片、下载文件、HTML 模板和前端打包结果。现在很多人会想到 &lt;code&gt;embed&lt;/code&gt;，但在 2020 年 4 月的 Go 语境里，&lt;code&gt;embed&lt;/code&gt; 还不是标准库能力。那时更常见的做法是把静态资源作为目录随程序一起部署，用 &lt;code&gt;http.FileServer&lt;/code&gt; 提供访问。&lt;/p&gt;</description></item></channel></rss>