Go教程技术文章
-
用公共事件信封承载 Kind 与 json.RawMessage,先解析公共字段,再把动态 payload 分流到具体 Go 结构体,并处理未知类型、空载荷和兼容性边界。387 收藏 -
Go JSON接口增加字段时,先保持旧字段的名字、类型和语义不变,再用可选字段、默认值和灰度读取承接新客户端。本文结合 encoding/json、严格未知字段校验和回滚清单,给出一套不破坏旧客户端的迁移方法。431 收藏 -
Go iter.Pull 将推送式迭代器转换为 next/stop 拉取接口。本文用惰性生产者说明如何用 defer stop 覆盖提前退出、自然结束和异常路径,并梳理 ok 判断、零值与并发调用边界。167 收藏 -
用 Go iter.Seq 把回调式遍历接入 for range,讲清 yield 提前停止、资源清理、iter.Pull 和单次迭代的工程边界。364 收藏 -
maps.Clone 会创建独立的顶层 map,但只做浅拷贝。本文用配置快照示例说明字符串、结构体、切片、嵌套 map 与指针字段的边界,并给出测试和深拷贝方案。141 收藏 -
Go map遍历顺序不应作为输出契约。本文用键切片排序和Go 1.23+的maps.Keys与slices.Sorted,演示如何在不修改原始map的前提下稳定输出配置项,并说明字符串键、数值键、空Map与并发边界。267 收藏 -
讲清 Go slices.Delete 的区间边界、尾部引用清理、DeleteFunc、Clip 与 Clone 的差异,帮助在原地删除与释放过大底层数组之间做出合适选择。138 收藏 -
Golang · Go教程 | 1星期前 | 切片 · 数据结构 · 标准库 · 泛型 · Go教程 · Go slices稳定去重 Go切片去重 Go保留顺序去重 Go泛型切片处理 Go slices包
使用 Go 的 slices 与泛型思路处理切片全局去重:保留第一次出现的值和原始顺序,同时说明 slices.Compact 的边界、不可比较元素和复杂度取舍。385 收藏 -
用 go.work 组织多个本地 Go 模块,说明工作区 replace 的覆盖关系,并给出 GOWORK、go list 与发布前收拢配置的检查方法。186 收藏 -
围绕 Go modules replace、vendor 与 module 模式,说明如何确认依赖来源、生成 vendor/modules.txt、统一构建参数并保留可回退的迁移清单。184 收藏 -
用 Go modules replace 在不改 import 路径的前提下临时指向本地模块,说明 require、go.mod、go list -m -json 与提交前清理之间的排查关系。258 收藏 -
用 go:generate 固定生成入口,在 go build 前检查生成结果与源定义是否同步,覆盖命令边界、差异检查、工具依赖和提交策略。220 收藏 -
围绕 go generate 的指令、工作目录、环境变量和输出边界,整理一套可重复执行的 Go 代码生成方案,并给出 CI 差异检查清单。188 收藏 -
Go go generate 的参数直接跟在生成命令后面,双引号可以保留带空格的单个参数,GOFILE 等自动变量适合减少硬编码。本文用 flag 和 -command 给出可维护的配置方法。414 收藏 -
Go unsafe 指针转换的关键不只是地址能否转,而是对象在底层调用结束前是否仍然可达。本文用直接传参、runtime.KeepAlive 和 unsafe.Add 说明安全边界。123 收藏