Go语言技术文章
-
Go stringsseq 适合把只遍历一次的 strings.Split 或 strings.Fields 迁移为 SplitSeq、FieldsSeq,减少临时切片分配。本文说明适用边界、go fix 预览方法、版本要求以及索引、重复遍历和语义回归检查。406 收藏 -
Go 1.27 的 go fix 新增 slicesbackward,可以把满足固定形状的倒序切片循环迁移为 slices.Backward。本文从输入边界、索引依赖、版本条件和预览方式说明何时适合使用。333 收藏 -
在 Go 静态分析中,类型别名不能只按 Named 类型处理。本文用 go/types.Alias.Rhs 读取 type A = R 的右侧类型,并说明 Alias、别名链与 types.Unalias 的边界。477 收藏 -
Go strings.SplitAfterSeq 返回一次性迭代器,适合按分隔符遍历并保留分隔符所在片段。本文从日志和协议文本的输入边界出发,说明尾部片段、空分隔符、无匹配和单次迭代的处理方式。226 收藏 -
Go fix embedlit 可简化嵌入字段初始化,本文说明语言版本、字段路径和已有嵌入值的输入边界,用源码计数区分可读性收益与性能结论。108 收藏 -
Go 1.27 的 go fix unsafefuncs 可以把可识别的 unsafe 指针算术迁移为 unsafe.Add 函数调用。本文说明怎样先用 -diff 预览,再检查字节偏移、对象边界、生命周期和旧工具链兼容性。314 收藏 -
Go 标准库 debug/macho.File.Section 可以按名称取得 Mach-O 节区。本文从打开文件、查找节区、读取元数据到选择 Data 或 Open 的完整流程,说明错误处理、资源关闭和输入边界。326 收藏 -
Go 1.27 的 go fix 增加 unsafefuncs modernizer,可把部分 unsafe.Pointer 与 uintptr 指针运算改写为 unsafe.Add。本文用代码对比说明迁移范围,并给出预览、复核和提交前检查清单。257 收藏 -
Go 标准库 encoding/base64 的 AppendEncode 可以把编码结果直接追加到已有字节切片。本文按完整工作流解释容量预留、返回切片、URL-safe 编码和多段追加的边界。295 收藏 -
Go net/url 的 URL.JoinPath 适合把已有 URL 与多个路径片段组合,并统一清理多余斜杠、. 和 ..。本文说明路径片段转义、查询参数保留和与 ResolveReference 的边界。225 收藏 -
Go 1.27 的 go fix atomictypes 可以把 sync/atomic 原始函数迁移为强类型原子包装器。本文从预览命令、访问边界、版本前提和人工复查说明这项现代化应该怎样安全落地。492 收藏 -
脚本读取 go.mod 时,不要先写正则拆文本。本文用 go mod edit -json 拿到结构化内容,说明字段范围、单文件边界、脚本消费方式和 Go 工具的错误处理。171 收藏 -
Go netip.Prefix.AppendText 用于把 CIDR 文本直接追加到已有 []byte 缓冲区。本文说明它与 AppendTo、String 的关系,演示返回切片的正确接收方式,并处理 ParsePrefix 的错误边界与 API 取舍。139 收藏 -
Go crypto/x509 CertPool.AddCertWithConstraint 可以把自定义约束绑定到某个根证书。本文用租户域名场景说明如何读取 Verify 传入的整条证书链、拒绝不符合范围的链,并处理回调并发与验证边界。371 收藏 -
Go encoding/csv Reader.ReuseRecord 可以让流式读取复用记录切片,减少短生命周期分配。本文解释默认行为、只读当前行的低分配写法,以及保存记录时为什么必须复制切片。386 收藏