Go语言技术文章
-
Go encoding/json 默认会转义 JSON 字符串中的 HTML 特殊字符。本文用 Encoder.SetEscapeHTML(false) 对比 HTML 嵌入、API、日志和签名文本场景,说明关闭转义的正确边界。499 收藏 -
maps.Clone 会创建独立的顶层 map,但只做浅拷贝。本文用配置快照示例说明字符串、结构体、切片、嵌套 map 与指针字段的边界,并给出测试和深拷贝方案。141 收藏 -
Go map遍历顺序不应作为输出契约。本文用键切片排序和Go 1.23+的maps.Keys与slices.Sorted,演示如何在不修改原始map的前提下稳定输出配置项,并说明字符串键、数值键、空Map与并发边界。267 收藏 -
Go 将 JSON 解码到 map[string]any 时数字默认变成 float64。本文用 UseNumber、结构体和边界转换方案保留整数与高精度数字,避免 ID 和金额失真。230 收藏 -
讲清 Go slices.Delete 的区间边界、尾部引用清理、DeleteFunc、Clip 与 Clone 的差异,帮助在原地删除与释放过大底层数组之间做出合适选择。138 收藏 -
Go 的 json.Decoder 在空输入或读取完流后会返回 io.EOF。本文用计数器和错误分类区分正常结束、空响应、截断 JSON 与语法错误,给出可直接改造的处理代码。385 收藏 -
Golang · Go教程 | 1星期前 | 切片 · 数据结构 · 标准库 · 泛型 · Go教程 · Go slices稳定去重 Go切片去重 Go保留顺序去重 Go泛型切片处理 Go slices包
使用 Go 的 slices 与泛型思路处理切片全局去重:保留第一次出现的值和原始顺序,同时说明 slices.Compact 的边界、不可比较元素和复杂度取舍。385 收藏 -
Go runtime/pprof 调整采样间隔时,关键不是把数字调大,而是让采样率、采样窗口和负载保持可比。本文用 StartCPUProfile 与 SetCPUProfileRate 说明参数边界、代码写法及 pprof 结果的正确读法。286 收藏 -
用 go.work 组织多个本地 Go 模块,说明工作区 replace 的覆盖关系,并给出 GOWORK、go list 与发布前收拢配置的检查方法。186 收藏 -
通过 Go runtime/pprof 的 block Profile 记录同步阻塞累计时间,再用 go tool pprof 的 top、list 和调用图定位锁、channel 与 WaitGroup 的等待点。411 收藏 -
围绕 Go modules replace、vendor 与 module 模式,说明如何确认依赖来源、生成 vendor/modules.txt、统一构建参数并保留可回退的迁移清单。184 收藏 -
Go runtime/pprof 可以把请求分类信息写进 CPU Profile 的样本标签。本文用 pprof.Do 建立请求边界,再用 go tool pprof 的 tags、tagfocus 和 tagroot 分析路由热点,并说明标签继承、覆盖和高基数边界。337 收藏 -
用 Go modules replace 在不改 import 路径的前提下临时指向本地模块,说明 require、go.mod、go list -m -json 与提交前清理之间的排查关系。258 收藏 -
用 Go testing/fstest 和 fstest.MapFS 区分符号链接自身、链接目标与 Open 跟随读取,掌握 TestFS、Lstat、ReadLink 的测试边界。279 收藏 -
用 go:generate 固定生成入口,在 go build 前检查生成结果与源定义是否同步,覆盖命令边界、差异检查、工具依赖和提交策略。220 收藏