Go语言技术文章
-
Go 使用 sql.NullString 扫描可空文本列时,必须同时判断 String 和 Valid。本文用表格、代码和排查清单说明如何区分 NULL、空字符串与普通文本,并正确写回数据库。447 收藏 -
解释 Go encoding/xml Decoder.Strict=false 对缺失结束标签、异常实体和命名空间的实际影响,并说明 AutoClose、Entity 的配置边界与生产选择。447 收藏 -
介绍 Go slog.Group 如何组织 request、order、payment 等嵌套业务字段,并比较 Logger.WithGroup、LogValuer、JSONHandler 与 TextHandler 的适用方式。447 收藏 -
printer.Config 的 Indent 控制基础缩进层级,Tabwidth 和 Mode 决定制表宽度及空格策略。本文用完整 AST 示例讲清组合方式与 gofmt 边界。447 收藏 -
围绕 Go html/template 的函数注册、模板解析和数据执行三个阶段,给出可复制的错误处理写法,说明 ParseFS、ExecuteTemplate、missingkey 与 HTML 转义边界。447 收藏 -
Go pprof 的 CPU 表里,flat 表示函数自身占用的采样,cum 表示函数连同下游调用链的累计采样。本文用调用关系、命令和误区说明两列该怎样配合阅读。447 收藏 -
同一个 JSON 字段承载多种对象时,先用公共字段确定类型,再用 json.RawMessage 延迟解析 payload。本文给出 Go 中按 kind 选择具体结构的写法,并区分缺少判别字段、未知类型与载荷格式错误。447 收藏 -
Go pprof 看不到短生命周期函数,通常不是函数被忽略,而是 CPU profile 按固定采样点记录调用栈,短调用可能没有撞上采样点,或累计 CPU 占比太低。本文用对照示例说明如何延长采样窗口、读取聚合结果并排除误判。447 收藏 -
Go sfnt.GlyphIndex 返回零且无错误通常表示缺字。本文区分解析与查询错误,给出字符映射检查函数,并比较拒绝、占位和候选字体三种处理方案。447 收藏 -
Go sync.Pool 适合可重建临时对象,不能承担业务缓存的按键读取、过期与命中承诺。结合缓冲复用代码说明输出复制、归还后引用和容量控制。447 收藏 -
解释编辑器原子保存替换文件后单文件监听失效的原因,用完整 Go 示例改为监听父目录并筛选 Event.Name,说明事件位判断、错误处理、重载职责和父目录稳定性。447 收藏 -
go-mp3 是纯 Go 的 MP3 解码器,负责把输入源解码为 16 位小端双声道 PCM 数据,并不直接打开声卡或播放设备。本文用职责边界、读取示例和排障清单说明如何把解码结果交给独立播放后端。447 收藏 -
本文用 bufio.Reader.Discard 的返回值拆解完整跳过、部分跳过和 EOF 的边界,说明怎样结合 discarded 与 error 判断截断输入,并给出不会吞掉底层错误的封装方式。447 收藏 -
Go 的 jsontext.Value 是保存 JSON 原始文本的 []byte。本文从 ReadValue 的短期生命周期讲到 Clone 的独立副本,再说明 PreserveRawStrings、Indent、Compact 和结构化修改之间的边界,帮助你保留需要的 JSON 表示而不误用格式化 API。447 收藏 -
Go 的 base64.StdEncoding 默认允许一部分非零尾部填充位,Encoding.Strict 会把这类编码判为 CorruptInputError。本文用最小示例说明尾部脏位、换行容忍和 NoPadding 的边界。446 收藏